これらすべての方法の違いは何ですか?
//1
$('div').eq(index)
//2
$('div')[index]
//3
$($('div')[index] )
//4
$('div').get(1)
それらは同じですか?
これらすべての方法の違いは何ですか?
//1
$('div').eq(index)
//2
$('div')[index]
//3
$($('div')[index] )
//4
$('div').get(1)
それらは同じですか?
1番目と3番目はjQueryオブジェクトを返し、2番目と4番目はDOM要素を返します。
$("div").eq(index) === $($("div")[index]); // --> jQuery object
$("div")[index] === $("div").get(index); // --> DOM element
最後のケースについては、http://api.jquery.com/get/で読むことができます。
タイプ間の違いを確認する必要がある場合は、コンソールで次のコマンドを実行してみてください。
Object.prototype.toString.call($("div").eq(index)); // "[object Object]"
Object.prototype.toString.call($("div")[index]); // "[object HTMLDivElement]"
First and third
あなたにオブジェクトを取得jQuery
し、2番目のものはあなたにDOM
オブジェクトを提供します。
$('div').eq(index)
//jqueryオブジェクトを返します
$('div')[index]
//javascriptDOMオブジェクトを提供します
$($('div')[index])
//DOMオブジェクトを変換してjQueryオブジェクトを提供します
たとえばid
オブジェクトのプロパティを取得するには、異なる構文が必要です。
idofobject = $('div').eq(index).attr('id') //jQuery
idofobject = $('div')[index].id //javascript
$('div').eq(index)
これはJQueryオブジェクトを返します
$('div')[index]
これにより、javascriptオブジェクトが提供されます
v1 :::$('div').eq(index)
は、1つのdivで構成されるjQueryでラップされたコレクションを返します。
v2::: $('div')[index]
DOM要素への参照を返します(jQueryでラップされていません)
v3::: $($('div')[index])
1つのdivで構成されるjQueryでラップされたコレクションを返します。これは、v1の冗長で非効率的なバージョンです。
$('div').get(index)
あなたはv2を達成するもう一つの方法であるについて尋ねませんでした。AFAIK、それは実質的に効率が悪いわけではありません。