求JS判断代码,当这个DIV里有某个图片时,便隐藏这个DIV

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求JS判断代码,当这个DIV里有某个图片时,便隐藏这个DIV相关的知识,希望对你有一定的参考价值。

求JS判断,当这个DIV里有某个图片时,便隐藏这个DIV
比如:
页面中有多个haoimg的class,代码如下:
<div class="haoimg"><a href="1.html"><img src="to.gif" align="absmiddle" height="160" border="0"/></a></div>
<div class="haoimg"><a href="1.html"><img src="别的图片.jpg" align="absmiddle" height="160" border="0"/></a></div>

以上代码中,当这个class里有图片to.gif时,这个class就隐藏。反之如果是别的图片就正常显示。

用jquery的话其实很好做,只要判断是否有src="to.gif"的img元素就可以了,难点在于捕获事件。

操作如下

function judgeImg() 
    var img = $("haoimg").find("img[src='to.gif']");  // 寄存选择
    if (img.length > 0)   // 判断是否存在该图片
        img.parent().hide();
    

你这里的难点其实是事件的捕获,你先要确定“到底什么时候,会出现这个img”

例如说某个按钮的点击后,或者某个效果后。

如果实在是不确定到底什么时候会出现,那就只能用DOMSubtreeModified 事件了,通过绑定document的这个事件,就可以在每次你document下的元素发生变化时进行判断了

$(function() 
    $(document).on('DOMSubtreeModified', function() 
        judgeImg();
    )
)

这样很明显会影响效率,所以建议你先确定出现的事件

如果不用jquery的话也能办到,不过稍微复杂些

追问

谢谢,我的要求很简单,不需要确定到底什么时候出现这个to.gif的img,

请问代码应该如何写?谢谢

追答

既然不确定的话,就只能在DOMSubtreeModified事件中进行处理了。
按照我给你的示例,是肯定可以实现的,不过这样子因为节点一发生变化就需要判断一次,肯定会影响效率(不过如果前端不是很复杂,基本上是完全察觉不出来的)。

但是建议你还是重新设计下,因为结构设计合理了,肯定是能确定相应的事件的

参考技术A   $(".hoimg").each(function()
  if($(this).find("img[src='to.gif']")[0])
            $(this).hide();
  else 
$(this).show();

  );

追问

也不管用啊

比如,我排列几个上面的代码:
加上JQ库,再加你这段,那图片以及它所在DIV还是显示啊。

一个弹出div,当点击页面上除了这个div这外的地方,隐藏这个div,jquery怎么写??

一个弹出div,当点击页面上除了这个div这外的地方,隐藏这个div,jquery怎么写??
如图所示。当点其他地方(始发城市以外)要隐藏那个选择城市的弹出div。
怎么用jquery实现 。说清楚思想。最好有讲解代码。多谢谢

参考技术A 用document的onmousedown 响应鼠标在页面上的点击事件
IE中用event.srcElement;
FF中用e.target;
能获得鼠标点击的对象
然后你判断该对象是否为选择城市的这个div
不是的话就隐藏该 div

我想怎么用jquery你应该知道 吧
$(document).mousedown(
function(event)
alert(event.target.id); //这样会弹出你单击的元素的id,你可以在这里写你的程序了

);
);本回答被提问者和网友采纳

以上是关于求JS判断代码,当这个DIV里有某个图片时,便隐藏这个DIV的主要内容,如果未能解决你的问题,请参考以下文章

如何用JS判断div中内容为空,当为空时隐藏div

js 代码判断文字后隐藏某div代码

js控制当滚动条到最底部时隐藏某个div

js如何判断div里面的图片为空隐藏,否则显示,如下图?

js判断页面出现指定文字显示div,否则隐藏

js中如何判断一个层是不是隐藏