使用jQuery 3.1.1,为什么这两者的结果不同?
$('dd[data-something]').first().innerText;
^返回 undefined
$('dd[data-something]')[0].innerText;
^返回有效数据
数组的第0个元素也不是.first()元素吗?
编辑:谢谢大家,我明白了,jQuery对象与DOM元素。正如调试器在我删除之前清楚显示的那样:)这是一个明确的标志,它的时间可以退出当天。
答案 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