JavaScript 元素遍历返回多于预期

JavaScript element traversal returning more than expected

我有一个简单的 HTML 设置如下:

<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输出了两次?

你得到了两次,因为 div 是嵌套的。它读取元素及其兄弟元素的所有文本。

  • 第一个的文字是outer inner
  • 第二个的文字只是 innner.