从jQuery对象获取基本元素

dan*_*ays 68 jquery

我在这里努力寻找合适的术语,但如果你有jQuery对象......

$('#MyObject')
Run Code Online (Sandbox Code Playgroud)

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

document.getElementById('MyObject')
Run Code Online (Sandbox Code Playgroud)

Aar*_*ner 95

$('#MyObject').get(0);
Run Code Online (Sandbox Code Playgroud)

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

$('#MyObject')[0];
Run Code Online (Sandbox Code Playgroud)

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


Vol*_*erK 54

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

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


Sho*_*og9 9

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

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


Vee*_*ond 5

我在我的盒子上提供的所有浏览器上测试了Aaron的声明:

$('#MyObject').get(0);
Run Code Online (Sandbox Code Playgroud)

VS

$('#MyObject')[0];
Run Code Online (Sandbox Code Playgroud)

据我所知,这只是个人偏好的问题.

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

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