如何检测find()函数没有找到任何东西?

时间:2013-07-10 15:14:46

标签: jquery find

我想使用find函数来查找元素,但我怎么能检测到没有找到的东西?

这是我的代码无法正常运行并始终返回true

if ($(this).find('img'))
    return true;

3 个答案:

答案 0 :(得分:3)

使用.length

if ($(this).find('img').length)
    return true;

答案 1 :(得分:3)

最好的方法是使用.length,例如,如果你的html是:

<div>
  <img src="" alt="" />
</div>

你的js / jquery是:

var test = $('div').find('img').length;
alert(test);

如果div包含一个图像,则测试将提示1。

在你的情况下:

if($(this).find("img").length == 0){

// There is no image inside your selected element - Do something

}else{

// There is some image inside your selected element - Do something

}

答案 2 :(得分:1)

您需要使用

$(this).find("img").length == 0

即使它看起来有点深奥,.find()返回一个jQuery Collection Object,它可以包含指向0个或更多DOM元素的指针。您当前的代码只检查是否设置了名为$(this).find(“img”)的变量。