jQueryは初めてですが、これがばかげた質問である場合はお詫びします。
私がそれを使用してidを使用する要素を見つけると、常に1つの一致があることを知っており、それにアクセスするためにインデックス[0]を使用します。これを行うより良い方法はありますか?例えば
var gridHeader = $("#grid_GridHeader")[0];
回答:
document.getElementById('id')
、それを捨てるためだけにjQueryオブジェクトを作成しないでください...セレクタエンジンからオブジェクトラッパーまで、それは非常に無駄です。正当な理由がないため、やり過ぎです:)
document.getElementById('id')
と交換しただけですが$('#id')[0]
、は好きではありませんでした[0]
。無駄についてのあなたのコメントは私に定義することを考えさせました、$0 = function(id){return document.getElementById(id);}
そして今、私は$0('id')
よりよく好きです。文字数はと同じですが$('#id')
、それができればいいのにと思います$#('id')
最初の方法を使用できます。
$('li').first()
ところで私はニック・クレイバーに同意します-document.getElementById()を使用してください...
[]
評価されるように、論理ステートメントでの使用には注意してくださいtrue
。
要素は1つだけであるという前提で:
$("#grid_GridHeader")[0]
$("#grid_GridHeader").get(0)
$("#grid_GridHeader").get()
...すべて同等であり、単一の基本要素を返します。
jQueryのソースコードから、内部get(0)
的には基本的に[0]
アプローチと同じことを行うことがわかります。
// Return just the object
( num < 0 ? this.slice(num)[ 0 ] : this[ num ] );
$("#grid_GridHeader").eq(0)
$("#id") /* jQuery object */ != $("#id").get(0) /* DOM Object */