关于javascript:如何检查jQuery查找返回true还是false?

How to check jQuery find return true or false?

本问题已经有最佳答案,请猛点这里访问。

HTML代码

1
2
3
4
5
6
7
8
    Child1
    Child2
    Child3



    Child1
    Child2

jQuery代码

1
2
alert($(".parent1").find(".child3").text());
alert($(".parent2").find(".child3").text());

我的问题是如何检查find函数返回true还是false?

在上面的代码中,它返回空白值,其中parent1类具有child3类,其中parent2类没有child3类。

JS小提琴


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

1
2
3
4
var elm = $('.parent1');
if(elm.has('.child3')){
   var child3 = elm.find('.child3');
}

或者就是这样

1
2
3
4
var child3 = $('.parent1').find(".child3");
if(child3.length > 0) {
  // child3 is present
}


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

1
2
3
4
5
6
var elem = $(".parent2").find(".child3");
if(elem.length){
    alert(elem.text());
}else{
    alert('Element doesnt exists')
}

或者,您可以使用.has()

1
2
3
4
5
6
var elem = $(".parent2");
if(elem.has(".child3")){
    alert(elem.find(".child3").text());
}else{
    alert('Element doesnt exists')
}


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

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

1
2
var $collection = $(".parent2").find(".child3").length;
if ($collection.length)....

您也可以使用其他方法,例如is()

1
2
var #collection = $(".parent2");
if($collection.children().is(".child3") /* returns tru if there are matches


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

1
2
3
4
5
6
if($(".parent1").find(".child3").length > 0) {
    alert("parent1 child3");
}
if($(".parent2").find(".child3").length > 0) {
    alert("parent2 child3");
}


.parent2没有元素.child3,

1
alert($(".parent2").find(".child3").text());

试试这个:

1
alert($(".parent2").find(".child2").text());

如果您只想要最后一项,请尝试此操作

1
2
alert($(".parent1").find("[class^=child]:last").text());
alert($(".parent2").find("[class^=child]:last").text());
1
2
3
4
5
6
7
8
9
10
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">

  Child1
  Child2
  Child3



  Child1
  Child2


1
2
3
4
5
6
7
8
console.log(Boolean($(".parent1").find(".child3").length));
console.log(Boolean($(".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);
1
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">