jQuery - .first()与[0]元素

时间:2016-11-06 10:05:48

标签: javascript jquery arrays

使用jQuery 3.1.1,为什么这两者的结果不同?

$('dd[data-something]').first().innerText;

^返回 undefined

$('dd[data-something]')[0].innerText;

^返回有效数据

数组的第0个元素也不是.first()元素吗?

编辑:谢谢大家,我明白了,jQuery对象与DOM元素。正如调试器在我删除之前清楚显示的那样:)这是一个明确的标志,它的时间可以退出当天。

2 个答案:

答案 0 :(得分:3)

因为first返回一个jQuery对象,该对象包含在集合中的第一个原始DOM元素(没有innerText属性,但确实有那个方便的text方法),并且{{ 1}}直接访问原始DOM元素(在大多数浏览器上都有[0]属性)。

答案 1 :(得分:0)

first()将返回一个与普通JavaScript对象不同的jQuery对象,并且无法使用本机JavaScript API,这里是官方文档中的qoute

  

.first()方法从该集合中的第一个元素构造一个新的jQuery对象。

第二个(索引零)将返回一个JavaScript对象,它几乎就像使用querySelectorAll()

调用元素一样

因此,如果你想让文本从jQuery中使用text(),那么它将起作用

$('dd[data-something]').first().text('new text'); // this will change the text