503

Mootools では、単にif ($('target')) { ... }. if ($('#target')) { ... }jQueryでも同じように機能しますか?

4

11 に答える 11

784

他のコメンターが最も効率的な方法を提案しているように、次のようになります。

if ($(selector).length ) {
    // Do something
}

絶対にexists()関数が必要な場合-これは遅くなります-次のことができます:

jQuery.fn.exists = function(){return this.length>0;}

次に、コードで使用できます

if ($(selector).exists()) {
    // Do something
}

ここで答えたように

于 2008-11-18T19:20:29.900 に答える
95

いいえ、セレクターが一致したかどうかに関係なく、jquery は常に jquery オブジェクトを返します。.length を使用する必要があります

if ( $('#someDiv').length ){

}
于 2008-11-18T19:17:09.160 に答える
22

使用した場合:

jQuery.fn.exists = function(){return ($(this).length > 0);}
if ($(selector).exists()) { }

そうでない場合でも、連鎖が可能であったことを意味します。

これは良いでしょう

jQuery.exists = function(selector) {return ($(selector).length > 0);}
if ($.exists(selector)) { }
于 2009-01-14T19:43:58.340 に答える
17

ここに回答してくださっている方のほとんどが質問の意味をよく理解していないか、私が間違っている可能性があります。

問題は「 jQueryにセレクターが存在するかどうかを確認する方法」です。

ほとんどの人は、これを「jQuery を使用して DOM に要素が存在するかどうかを確認する方法」と考えています。交換しにくい。

jQuery ではカスタム セレクターを作成できますが、初期化する前に e を使用しようとするとどうなるかをここで確認してください。

$(':YEAH');
"Syntax error, unrecognized expression: YEAH"

これに遭遇した後、私はそれが単にチェックの問題であることに気付きました

if ($.expr[':']['YEAH']) {
    // Query for your :YEAH selector with ease of mind.
}

乾杯。

于 2012-03-18T16:22:10.937 に答える
15

さらに別の方法:

$('#elem').each(function(){
  // do stuff
});
于 2010-10-22T07:53:37.147 に答える
14
if ($('#elem')[0]) {
  // do stuff
}
于 2010-05-27T04:22:51.350 に答える
3

または:

if( jQuery('#elem').get(0) ) {}
于 2008-11-19T09:40:06.110 に答える
1

私は

    if (jQuery("#anyElement").is("*")){...}

これは基本的に、この要素が一種の「*」(任意の要素) であるかどうかをチェックします。単純な構文であり、「is」は「if」内でより意味があります

于 2012-08-11T19:50:19.130 に答える
-3

私にとって.existsはうまくいかないので、インデックスを使用します:

if ($("#elem").index() ! = -1) {}
于 2012-02-02T12:08:22.510 に答える
-6

最初に関数を作成します。

$.fn.is_exists = function(){ return document.getElementById(selector) }

それから

if($(selector).is_exists()){ ... }
于 2013-09-30T08:47:38.127 に答える