Mootools では、単にif ($('target')) { ... }
. if ($('#target')) { ... }
jQueryでも同じように機能しますか?
11 に答える
他のコメンターが最も効率的な方法を提案しているように、次のようになります。
if ($(selector).length ) {
// Do something
}
絶対にexists()関数が必要な場合-これは遅くなります-次のことができます:
jQuery.fn.exists = function(){return this.length>0;}
次に、コードで使用できます
if ($(selector).exists()) {
// Do something
}
ここで答えたように
いいえ、セレクターが一致したかどうかに関係なく、jquery は常に jquery オブジェクトを返します。.length を使用する必要があります
if ( $('#someDiv').length ){
}
使用した場合:
jQuery.fn.exists = function(){return ($(this).length > 0);}
if ($(selector).exists()) { }
そうでない場合でも、連鎖が可能であったことを意味します。
これは良いでしょう
jQuery.exists = function(selector) {return ($(selector).length > 0);}
if ($.exists(selector)) { }
ここに回答してくださっている方のほとんどが質問の意味をよく理解していないか、私が間違っている可能性があります。
問題は「 jQueryにセレクターが存在するかどうかを確認する方法」です。
ほとんどの人は、これを「jQuery を使用して DOM に要素が存在するかどうかを確認する方法」と考えています。交換しにくい。
jQuery ではカスタム セレクターを作成できますが、初期化する前に e を使用しようとするとどうなるかをここで確認してください。
$(':YEAH');
"Syntax error, unrecognized expression: YEAH"
これに遭遇した後、私はそれが単にチェックの問題であることに気付きました
if ($.expr[':']['YEAH']) {
// Query for your :YEAH selector with ease of mind.
}
乾杯。
さらに別の方法:
$('#elem').each(function(){
// do stuff
});
if ($('#elem')[0]) {
// do stuff
}
または:
if( jQuery('#elem').get(0) ) {}
私は
if (jQuery("#anyElement").is("*")){...}
これは基本的に、この要素が一種の「*」(任意の要素) であるかどうかをチェックします。単純な構文であり、「is」は「if」内でより意味があります
私にとって.exists
はうまくいかないので、インデックスを使用します:
if ($("#elem").index() ! = -1) {}
最初に関数を作成します。
$.fn.is_exists = function(){ return document.getElementById(selector) }
それから
if($(selector).is_exists()){ ... }