20

jQuery配列の最初の項目をDOM要素として取得したいだけの場合、jQueryを使用するメリットはあります$(selector).get(0)か?$(selector)[0]

HTML:

<form id="myForm"></form>

Javascript:

var selector = '#myForm';
var domElement = $(selector).get(0); //Returns [object HTMLFormElement]

//Or
var domElement = $(selector)[0]; //Also returns [object HTMLFormElement]
  • .get()入力する文字数が増えました。
  • $(selector)が空の場合、どちらのメソッドも同じ結果を返します ( undefined)
  • jQuery のドキュメントで.get().get()は、単純にインデックス アクセサーを使用して n 番目の要素を取得できますが、負の数を使用して配列の末尾からアイテムを返すなどの他の利点は得られないことに注意してください。
  • また、.get()引数なしで呼び出して、jQuery 配列のすべての DOM 要素を返すこともできます。
4

4 に答える 4

32

.get負のインデックスを使用できます。例えば:

<span>1</span>
<span>2</span>
<span>3</span>

$("span").get(-1);は 3 番目を指しspanます。

ただし、その機能が必要なく、1 つの要素のみを選択したい場合.get(0)[0]同じです。次の点に注意してthis[num]ください。

// jQuery code
get: function (num) {
    return num == null ?

    // Return a 'clean' array
    this.toArray() :

    // Return just the object
    (num < 0 ? this[this.length + num] : this[num]);
},
于 2013-01-24T15:19:01.970 に答える
6

速度を上げるために、10,000,000回ごとにループするjsfiddleを作成しました。ドキュメントの最初と最後に1200行のダミーHTMLを含むフォームを使用して、2つのテストを作成しました。いくつかの予備的な結果は次のとおりです。

Test1
form at beginning with .get(0): 15981ms - faster
form at beginning with [0]:     16089ms
form at end with .get(0):       16554ms
form at end with [0]:           15969ms - faster

Test2
form at beginning with .get(0): 14137ms
form at beginning with [0]:     14034ms - faster
form at end with .get(0):       13756ms - faster
form at end with [0]:           14492ms

Test3
form at beginning with .get(0): 15952ms - faster
form at beginning with [0]:     16810ms
form at end with .get(0):       15905ms
form at end with [0]:           15532ms - faster

速度に大きな違いは見られないようです。ただし、確認するには、さまざまなブラウザをチェックインする必要があります。

ここでフィドルをチェックできます:http://jsfiddle.net/AFfYx/(実行には約1分かかります)

于 2013-01-24T15:59:46.053 に答える