我是jQuery新手,如果这是一个愚蠢的问题,我深表歉意。
当我使用它查找使用id的元素时,我知道总是存在一个匹配项,为了访问它,我将使用索引[0]。有更好的方法吗?例如
var gridHeader = $("#grid_GridHeader")[0];
Answers:
document.getElementById('id')请不要创建一个jQuery对象只是将其扔掉……从选择器引擎到对象包装器,这都是非常浪费的,没有正当理由,这简直是过分了:)
document.getElementById('id')用$('#id')[0],但不喜欢[0]。您对浪费的评论使我开始思考$0 = function(id){return document.getElementById(id);},现在我$0('id')更喜欢了。字符数与相同$('#id'),但我希望是这样$#('id')
您可以使用第一种方法:
$('li').first()
顺便说一句,我同意尼克·克拉弗(Nick Craver)-使用document.getElementById()...
[]会使用一样true。
假设只有一个元素:
$("#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 */