2015-03-24 20 views
0

我有一個簡單的HTML設置如下:的JavaScript元素遍歷歸國超過預期

<div> 
outer 
    <div>Inner</div> 
</div> 

我穿越它,如下所示:

"use strict"; 

var divs = document.getElementsByTagName("div"); 

for(var i = 0, div; div = divs[i]; i++) { 
    console.log(div.innerText); 
} 

輸出:

outer 
Inner 
Inner 

爲什麼是Inner輸出兩次?

+1

順便說一句,符合W3C標準的[* textContent *](http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-textContent)屬性優於MS專有[* innerText *](https://msdn.microsoft.com/en-us/library/ie/ms533899(v = vs.85).aspx),這是所有瀏覽器都不支持的。 – RobG 2015-03-24 23:07:56

+0

感謝提示 – 2015-03-24 23:17:37

回答

2

你得到它兩次,因爲divs是嵌套的。它讀取元素及其兄弟的所有文本。

  • 第一個文本是outer inner
  • 第二個的文本只是innner
+0

你打敗了我。 – 2015-03-24 22:47:07

+0

我該如何解決這個問題? – 2015-03-24 22:50:46

+0

沒有竅門....這是它的工作原理。你的目標是什麼? – epascarello 2015-03-24 22:52:16