1

次のように入力すると呼び出されるjQueryソースのさまざまな領域を飛び越えました。

$('.foo')

また

$('#foo')

jQueryがセレクターを解析する方法を決定しようとしましたが(charAt()と仮定しました)、検証したいと思いました。

私はここに着きました:

    if ( selector.nodeType ) {
        this.context = this[0] = selector;
        this.length = 1;
        return this;
    }

しかし、私は何に固執しました

selector.nodeType

します。このリファレンスは、nodeTypeはほとんど何でもかまいません...では、正確に何をチェックしているのでしょうか。

jQuery APIは、可能性をさらに分解します。

要約すると、このコードスニペットはセレクター変数に関して何を達成しようとしていますか?

4

1 に答える 1

6

nodeTypejQueryセレクターに渡されるオブジェクトがDOMノード(通常は要素)であることを示します。これにより、たとえば、次の構造が可能になります。

$(document)

documentドキュメントを表すオブジェクトです。$(document)その要素に基づいてjQueryオブジェクトを構築します。のテストnodeTypeは、jQueryが引数が要素であるかどうかを検出できることを意味し、要素である場合は、それに基づいて選択を構築するだけです。

また、一般的な構造でこれを見ることができます$(this)

$('a').on('click', function() {
    console.log($(this).text()); // builds a jQuery selection based on the this
                                 // object, which is the DOM element that was 
                                 // clicked
});
于 2012-08-27T18:36:04.160 に答える