2012-01-06 9 views

答えて

4

結果の選択の長さを確認できます。それは0だ場合は、祖先.current-map要素がなかった:最もjQueryのメソッドは、それが任意のDOM要素が含まれているかどうかのjQueryのインスタンスを返します、そしてそれは常にtrueと評価されますので、

if($("#box").closest(".current-map").length) { 
    //.current-map is an ancestor 
} 

はあなたの試みは動作しません。あなたの場合、ブロック内

+0

+1ロジックはありますが、これはうまく動作します、ありがとう! –

0

するTry .LENGTHは

if ($('#box').closest('.current-map').length > 0) { 
     //do something 
    } 
1

あなたが代わりに:has()セレクタを使用する必要があります。ロジックを回してください。

if ($('.current-map:has(#box)').length > 0) { 
    // do backflips 
} 

.closest()は、動作が遅いことで有名です。

+1

もしあなたがそれに興味があるなら、セレクタではなく '.has'メソッドを使って、' querySelectorAll'をそれをサポートするブラウザのセレクタで使うことができます。 –

関連する問題