我想知道为什么下面的代码片段工作(在最新的Firefox Nightly中测试过):
var links = document.querySelectorAll('a[href]');
for (var i = 0; i < links.length; ++i) {
console.log(links[i].search); // Where does `search` come from?
}
作为“通常”,我在每个href
元素中获取a
的查询字符串(我也可以使用简单的substr
或其他东西,但这不是重点);然而,如果我做这样的事情:
var divs = document.querySelectorAll('div');
for (var i = 0; i < divs.length; ++i) {
console.log(divs[i].search);
}
我得到的只是undefined
。
根据MDN,search
个对象(element
returns无法使用document.querySelectorAll(selector)
属性NodeList
} element
个对象)。那么,这一切都来自哪里?
非常感谢任何帮助。
答案 0 :(得分:0)
DOM中不同种类的HTML元素节点具有不同的API。与<a>
标记对应的节点实现用于检查URL的API。 “搜索”属性是特定类型特定事物之一。基本上,<a>
节点具有与window.location
相同的属性,或多或少。