68

我正在努力在这里找到正确的术语,但如果你有 jQuery 对象......

$('#MyObject')

...是否可以提取基本元素?意思是,相当于:

document.getElementById('MyObject')
4

4 回答 4

96
$('#MyObject').get(0);

我想这就是你想要的。我认为您也可以像常规数组一样引用它:

$('#MyObject')[0];

但我不确定这是否会一直有效。坚持第一种语法。

于 2008-09-06T21:20:52.850 回答
55

是的,使用.get(index). 根据文档

.get()方法授予对每个 jQuery 对象下的 DOM 节点的访问权限。

于 2008-09-06T21:15:25.857 回答
9

jQuery 对象是一组元素。在你的情况下,一组一个元素。这与某些其他库不同,后者包装单个元素并为返回多个匹配项的选择器提供替代语法。

Aaron WVolkerK已经解释了如何访问集合中的第一个(索引 0)元素。

于 2008-09-06T22:08:51.877 回答
5

我在我的盒子上所有可用的浏览器上测试了 Aaron 的陈述:

$('#MyObject').get(0);

对比

$('#MyObject')[0];

据我所知,这只是个人喜好问题。

从功能上讲,这两个语句对于现有和不存在的元素都是等效的。我测试了以下浏览器:Chrome 27.0、FF 21.0、IE10、IE9、IE8、IE7、IE6。

在我进行的速度测试中,并不总是能够分辨出哪种变化更快。结果并不总是一致的,即使在同一个浏览器上也是如此。对于速度测试,我只测试了现有元素。我的测试结果在这里

于 2013-05-30T15:06:37.127 回答