Javascript 如何检查jQuery find返回true或false?

Javascript 如何检查jQuery find返回true或false?,javascript,jquery,Javascript,Jquery,HTML代码 <div class="parent1"> <div class="child1">Child1</div> <div class="child2">Child2</div> <div class="child3">Child3</div> </div> <div class=

HTML代码

<div class="parent1">
    <div class="child1">Child1</div>
    <div class="child2">Child2</div>
    <div class="child3">Child3</div>
</div>

<div class="parent2">
    <div class="child1">Child1</div>
    <div class="child2">Child2</div>
</div>
alert($(".parent1").find(".child3").text());
alert($(".parent2").find(".child3").text());
我的问题是如何检查
查找
函数返回true或false

在上面的代码中,它返回空值,其中
parent1
class有
child3
class,而
parent2
class没有
child3
class


您不能在
if
条件下仅使用
查找
。您可以使用
has
或检查
length
属性

var elm = $('.parent1');
if(elm.has('.child3')){
   var child3 = elm.find('.child3');
}
还是像这样

var child3 = $('.parent1').find(".child3");
if(child3.length > 0) {
  // child3 is present
}
console.log(布尔($(.parent1”).find(.child3”).length);
log(布尔值($(“.parent2”).find(“.child3”).length));
console.log(!!$(“.parent1”).find(“.child3”).length);
console.log(!!$(“.parent2”).find(“.child3”).length);
console.log($(“.parent1”).find(“.child3”).length>0);
console.log($(“.parent2”).find(“.child3”).length>0)

没有.parent2的元素.child3

alert($(".parent2").find(".child3").text());
试试这个:

alert($(".parent2").find(".child2").text());
如果您只想要最后一项,请尝试此项

警报($(“.parent1”).find(“[class^=child]:last”).text();
警报($(“.parent2”).find(“[class^=child]:last”).text()

孩子1
孩子2
孩子3
孩子1
孩子2

您可以使用
.length
属性检查元素是否存在

var elem = $(".parent2").find(".child3");
if(elem.length){
    alert(elem.text());
}else{
    alert('Element doesnt exists')
}
或者,您可以使用


每当您在
$()
中包装选择器时,它总是返回一个包含匹配元素数组的jQuery对象

因此,您可以使用
length
属性来测试是否存在匹配项

var $collection = $(".parent2").find(".child3").length;
if ($collection.length)....
您也可以使用其他方法,例如
is()

作为解释,
find()
返回一个jQuery对象。它有一个长度属性,可以检查该属性以获得成功的查询

if($(".parent1").find(".child3").length > 0) {
    alert("parent1 child3");
}
if($(".parent2").find(".child3").length > 0) {
    alert("parent2 child3");
}

find
不返回布尔值。有很多方法,它在某种程度上取决于用例根据文档()“has”方法返回jQuery,而不是布尔值。这意味着此答案中的第一个示例将始终返回true。使用文档页面上的示例,您需要检查返回对象的length属性是否大于零,而不仅仅是是否返回了某些内容。
已经
对我不起作用
var #collection = $(".parent2");
if($collection.children().is(".child3") /* returns tru if there are matches
if($(".parent1").find(".child3").length > 0) {
    alert("parent1 child3");
}
if($(".parent2").find(".child3").length > 0) {
    alert("parent2 child3");
}