2014-05-03 42 views
0

你好。爲什麼這些`element`對象具有`search`屬性?

我想知道爲什麼下面的代碼片段工作(在最新的Firefox每晚測試):

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,沒有可用於element對象(document.querySelectorAll(selector)returns非活elementNodeList對象)沒有這樣的事情search財產。那麼,這些都來自哪裏?

任何幫助將不勝感激。

+3

您正在使用[定位元素](https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement),因此您必須查看正確的文檔。不同類型的HTML元素節點具有不同的API。 – Pointy

+0

謝謝@Pointy,這非常有道理!我可以接受「評論」作爲「答案」嗎? – d125q

+0

我很懶,但我會輸入回答:) – Pointy

回答

0

DOM中不同種類的HTML元素節點有不同的API。對應於<a>標籤的節點實施用於檢查URL的API。 「搜索」屬性是那些特定類型特定的東西之一。基本上,<a>節點具有與window.location相同的屬性,或多或少。

相關問題