我想使用find
函数来查找元素,但我怎么能检测到没有找到的东西?
这是我的代码无法正常运行并始终返回true
:
if ($(this).find('img'))
return true;
答案 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”)的变量。