假設我有以下的HTML結構JAVASCRIPT DOM搜索或DOM關係,這是更快的方法?
<div>
<div id="foo"></div>
</div>
<div>
<div id="bar"></div>
</div>
現在我需要,當我點擊「富」的「吧」的innerHTML變成了「你好」。我基本上有兩種方式來獲得的「棒」的元素:
document.getElementById("foo").onclick=function(){
document.getElementById("bar").innerHTML="hello";
}
document.getElementById("foo").onclick=function(){
this.parentNode.nextElementSibling.firstElementChild.innerHTML="hello";
}
兩種方法/屬性是本地DOM的一部分,但我不知道,如果是後者從1995年起的getElementById前者稍快應遍歷所有的ID文件直到第一場比賽達成?
您可以自行剖析代碼:http://jsperf.com/,https://developer.chrome.com/devtools/docs/cpu-profiling – 2014-09-03 01:01:30
@弗蘭克戴,請考慮不僅更快,而且還維護該代碼。比方說,在未來,你想在它們之間放置一個簡單的圖像。然後,像「this.parentNode.nextElementSibling.firstElementChild.innerHTML」的東西將停止工作。 – 2014-09-03 01:05:27
是的。我知道要緩存,並且這種基於關係的代碼容易被未來修改。我的觀點是即使差距可能小於2-3毫秒,哪種方式更快。 – 2014-09-03 01:09:45