0

我正在处理的一个项目必须使用 JavaScript 操作 DOM 元素。当某个特定事件触发时,我会循环遍历 DOM 并基本上创建所有节点的索引,以便以后操作它们。我创建此索引的原因还有更多,但为了简单起见,我在这里将其简化。

然而问题在于,当我们去操作 DOM 中的元素时,它看似操作的是一个单独的对象,而不是 DOM 中的实际对象。这是我能想到的一个基本示例:

<div id="container">
    <div>Here is some text</div>
    <div>And here is some more text</div>
</div>

<script>
    var container = document.getElementById('container');
    container.firstChild.innerHTML = 'Foobar';
</script>

小提琴:http: //jsfiddle.net/4Nngh/

但第一个 div 从未更改为“Foobar”。我猜当我得到“容器”元素时,我实际上得到的是一个单独的对象,而不是对 DOM 元素的引用。

是否可以简单地引用 DOM 中显示的元素并直接对其进行操作,还是必须使用某种类型的替换方法?其他事件可能会在脚本运行时更改该 DOM 元素的内容,因此我试图避免每次触发事件时都必须重新创建此索引,这就是为什么我正在寻找对元素以某种方式。

谢谢!

4

1 回答 1

4

firstChild实际上是包含换行符组合的文本节点。

要获取第一个元素子元素,请使用children[0]. 该children[]数组仅包含元素节点。

于 2013-01-25T20:38:51.150 回答