この質問にはすでに答えがあります。
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
としてのドキュメントfind()
説明する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