#box
に、current-map
というクラスのdivが含まれていない場合は、何かしてください。divに特定のクラスを含むdivが含まれていない場合は、何かしてください。 JQuery
私は!
がうまくいくと思っていましたが、そうはしませんでした。
if (!$('#box').closest('.current-map')) {
//do something
}
#box
に、current-map
というクラスのdivが含まれていない場合は、何かしてください。divに特定のクラスを含むdivが含まれていない場合は、何かしてください。 JQuery
私は!
がうまくいくと思っていましたが、そうはしませんでした。
if (!$('#box').closest('.current-map')) {
//do something
}
結果の選択の長さを確認できます。それは0
だ場合は、祖先.current-map
要素がなかった:最もjQueryのメソッドは、それが任意のDOM要素が含まれているかどうかのjQueryのインスタンスを返します、そしてそれは常にtrue
と評価されますので、
if($("#box").closest(".current-map").length) {
//.current-map is an ancestor
}
はあなたの試みは動作しません。あなたの場合、ブロック内
するTry .LENGTHは
if ($('#box').closest('.current-map').length > 0) {
//do something
}
あなたが代わりに:has()
セレクタを使用する必要があります。ロジックを回してください。
if ($('.current-map:has(#box)').length > 0) {
// do backflips
}
.closest()
は、動作が遅いことで有名です。
もしあなたがそれに興味があるなら、セレクタではなく '.has'メソッドを使って、' querySelectorAll'をそれをサポートするブラウザのセレクタで使うことができます。 –
+1ロジックはありますが、これはうまく動作します、ありがとう! –