0

end()を呼び出すと、最後のアイテムがjQueryスタックからポップされます。

$("div")

と同じものを返します

$("div").children().end()

返されるものとの違いはデバッガーではわかりませんが、気づきました

divs1 = $("div")
divs2 = $("div").children().end()
console.log(divs1 == divs2) // false

これらの2つのオブジェクトが互いに等しくないのはなぜですか?Rubyにあるようなjavascriptのオブジェクトのある種の一意の識別子はありますか?それとも、2つを区別するコンソールに表示されないものがありますか?

4

1 に答える 1

4

セレクター経由で jQuery オブジェクトを取得している間、jQuery は毎回結果を新しいオブジェクトにラップします。したがって、ターゲティング オブジェクトは同一ですが、ラップする jQuery オブジェクトは異なります。

この方法で DOM ノードを直接比較する必要があります。

console.log(divs1[0] == divs2[0]) // true

...[0]最初のノードにアクセスできます)

于 2012-12-22T09:05:32.217 に答える