Javascript 如何检查jQuery find返回true或false?
HTML代码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=
<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");
}