3

これらすべての方法の違いは何ですか?

//1
$('div').eq(index) 

//2
$('div')[index] 

//3
$($('div')[index] )

//4
$('div').get(1)

それらは同じですか?

ScreenShot

4

4 に答える 4

6

いいえ。

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]"
于 2012-12-07T11:45:49.160 に答える
3

First and thirdあなたにオブジェクトを取得jQueryし、2番目のものはあなたにDOMオブジェクトを提供します。

  1. $('div').eq(index) //jqueryオブジェクトを返します

  2. $('div')[index] //javascriptDOMオブジェクトを提供します

  3. $($('div')[index]) //DOMオブジェクトを変換してjQueryオブジェクトを提供します

たとえばidオブジェクトのプロパティを取得するには、異なる構文が必要です。

idofobject = $('div').eq(index).attr('id') //jQuery

idofobject = $('div')[index].id            //javascript
于 2012-12-07T11:45:54.203 に答える
2

$('div').eq(index) これはJQueryオブジェクトを返します

$('div')[index] これにより、javascriptオブジェクトが提供されます

于 2012-12-07T11:47:09.583 に答える
1
  • v1 :::$('div').eq(index)は、1つのdivで構成されるjQueryでラップされたコレクションを返します。

  • v2::: $('div')[index]DOM要素への参照を返します(jQueryでラップされていません)

  • v3::: $($('div')[index])1つのdivで構成されるjQueryでラップされたコレクションを返します。これは、v1の冗長で非効率的なバージョンです。

$('div').get(index)あなたはv2を達成するもう一つの方法であるについて尋ねませんでした。AFAIK、それは実質的に効率が悪いわけではありません。

于 2012-12-07T11:56:58.857 に答える