이 질문에는 이미 답변이 있습니다.
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>
jQuery 코드
alert($(".parent1").find(".child3").text());
alert($(".parent2").find(".child3").text());
내 질문은 확인하는 방법입니다.find
함수는 true 또는 false를 반환합니까?
위의 코드에서는 빈 값을 반환합니다.parent1
수업이있다.child3
클래스 어디에서parent2
수업에는 없다.child3
수업.
너는 단지 사용할 수 없었다.find
...에서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
}
has
나를 위해 일하지 않는다. - mario1ua
당신이 사용할 수있는.length
해당 요소를 확인하는 속성
var elem = $(".parent2").find(".child3");
if(elem.length){
alert(elem.text());
}else{
alert('Element doesnt exists')
}
또는, 다음을 사용할 수 있습니다..has()
var elem = $(".parent2");
if(elem.has(".child3")){
alert(elem.find(".child3").text());
}else{
alert('Element doesnt exists')
}
선택기를 래핑 할 때마다$()
항상 일치하는 요소의 배열을 포함하는 jQuery 객체를 반환합니다.
따라서length
일치하는 항목이 있는지 테스트 할 속성
var $collection = $(".parent2").find(".child3").length;
if ($collection.length)....
다음과 같은 다른 접근법을 사용할 수도 있습니다.is()
var #collection = $(".parent2");
if($collection.children().is(".child3") /* returns tru if there are matches
마찬가지로docs forfind()
설명,find()
jQuery 객체를 반환합니다. 그것은 성공적인 질의를 검사 할 수있는 길이의 속성을 가지고 있습니다.
if($(".parent1").find(".child3").length > 0) {
alert("parent1 child3");
}
if($(".parent2").find(".child3").length > 0) {
alert("parent2 child3");
}
.parent2에는 .child3 요소가 없습니다.
alert($(".parent2").find(".child3").text());
이 시도:
alert($(".parent2").find(".child2").text());
마지막 항목 만 원할 경우이 방법을 사용하십시오.
alert($(".parent1").find("[class^=child]:last").text());
alert($(".parent2").find("[class^=child]:last").text());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<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>
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);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="parent1">
<div class="child3"></div>
</div>
<div class="parent2"></div>
find
부울 값을 반환하지 않습니다. - undefined