我是jQuery的新手,如果这是一个愚蠢的问题,请原谅。
当我使用它通过id查找元素时,我知道总是只有一个匹配项,并且为了访问它,我需要使用索引[0]。是否有更好的方法来做这件事呢? 例如:
var gridHeader = $("#grid_GridHeader")[0];
我是jQuery的新手,如果这是一个愚蠢的问题,请原谅。
当我使用它通过id查找元素时,我知道总是只有一个匹配项,并且为了访问它,我需要使用索引[0]。是否有更好的方法来做这件事呢? 例如:
var gridHeader = $("#grid_GridHeader")[0];
$("#grid_GridHeader:first")
同样有效。
$('li').first()
顺便说一句,我同意Nick Craver的观点——使用document.getElementById()...
[]
将被计算为 true
。 - Ashleyvar header = $('.header:first')
假设只有一个元素:
$("#grid_GridHeader")[0]
$("#grid_GridHeader").get(0)
$("#grid_GridHeader").get()
get()、eq() 和 [] 都是等效的,它们都返回单个底层元素。
从 jQuery 源代码中可以看出,get(0)
实质上与 [0]
方法做的事情基本相同:
// Return just the object
( num < 0 ? this.slice(num)[ 0 ] : this[ num ] );
yourArray.shift()
$("#id") /* jQuery 对象 */
不等于$("#id").get(0) /* DOM 对象 */
。 - BrunoLMdocument.getElementById('id')
,不要创建一个jQuery对象然后抛弃它……这样非常浪费资源,从选择器引擎到对象包装,这都是没有必要的过度设计。:) - Nick Craver$('#id')[0]
替换了一堆document.getElementById('id')
,但是不喜欢[0]
。你关于浪费的评论让我想到定义$0 = function(id){return document.getElementById(id);}
,现在我更喜欢$0('id')
了。字符数与$('#id')
相同,只是希望它可以是$#('id')
。 - Bruno Bronosky