为什么这些`element`对象具有`search`属性?

时间:2014-05-03 15:12:38

标签: javascript

你好吗。

我想知道为什么下面的代码片段工作(在最新的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

根据MDNsearch个对象(element returns无法使用document.querySelectorAll(selector)属性NodeList } element个对象)。那么,这一切都来自哪里?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

DOM中不同种类的HTML元素节点具有不同的API。与<a>标记对应的节点实现用于检查URL的API。 “搜索”属性是特定类型特定事物之一。基本上,<a>节点具有与window.location相同的属性,或多或少。