document.querySelectorAll()
返回一个节点列表(有点像数组),如果你肯定只会有一个你有几个选项。
1)使用.querySelector
代替:
// returns the first node that matches
var elm = document.querySelector('div[class~="one"]');
console.log(elm.id);
2)返回列表中访问的第一个元素:
// returns all nodes that match
var elms = document.querySelectorAll('div[class~="one"]');
console.log(elms[0].id);
确保为null检查的.querySelectorAll
.querySelector
和长度检查的回报收益。
另请注意,我使用~=
而不是^=
。你可以阅读on the MDN关于所有相等运算符之间的差异。但是,对于这两种:
[ATTR〜=值] 表示具有attr的属性名,其值是的话,其中的一个是完全的“价值”的空格隔开的列表的元素。
[attr^= value] 表示一个元素,其属性名称为attr,其第一个值以“value”为前缀。
可能重复的[查找页面中的元素ID包含使用jQuery的特定文本的所有元素](http://stackoverflow.com/questions/1206739/find-all-elements-on-a-page-它的元素id包含一个特定文本使用jquer) – TylerH