0

要素が存在するかどうかを確認するために1つのjQuery関数を作成したとします。

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

それから私は電話します:

if ($("#MyDiv").exists() == false)
   alert('not exist');
else
   alert('exist');

上記のjQuery関数を呼び出すと、機能します。しかし、このようにjquery関数を呼び出すことはできませんexists('#MyDiv')か?このように呼び出そうとすると、結果が得られません...なぜですか?

4

4 に答える 4

2

ARRG、お願いします、この役に立たないexist機能を使用しないでください!

それは簡単にできます:

if ($('#MyDiv').length)
    // Exist
else
    // Doesn't exist.

プラグインは必要ありません。誰もがこのコードの機能を知っています。使用しないでくださいexist

于 2012-06-19T18:40:09.593 に答える
1

以下のようにしてみてください、

$.exists = function (selector) {
    return $(selector).length > 0;
}

として使用し、

$.exists('#test') 

デモ:http: //jsfiddle.net/skram/hgaPt/1/

これを全体像で使用してください。存在する単純なものに使用するのはやり過ぎです。

于 2012-06-19T18:40:33.790 に答える
0
exists('#MyDiv')

と呼ばれる関数を作成しなかったため、これは機能しませんexistsjQuery.fn.exists(jQueryオブジェクトの)jQuery.fnという関数を作成しました。prototype

動作させるにはexists('#MyDiv')、という関数を作成する必要がありますexists

function exists(sel){
    return $(sel).length;
}
于 2012-06-19T18:46:22.343 に答える
0

$.fnはに等しい$.prototypeので、間接的に使用し$.fnて関数をjQueryオブジェクトのプロトタイプにフックしているため、セレクターは連鎖関数名ではなくjQueryオブジェクトに渡す必要があります。

于 2012-06-19T18:47:46.973 に答える