为什么innerHTML不会改变图像的src?

Pau*_*ski 4 javascript element image

我必须将一个src设置为图像对象.然后我改变它.

但是如果我在元素中添加一些东西(元素的内容),比如

meaning.innerHTML += ")";
Run Code Online (Sandbox Code Playgroud)

(其中含义是图像的父元素),那么如果更改对象的src则不会影响文档.

示例:http://jsfiddle.net/WcnCB/3/

你能解释一下它为什么会发生,以及如何解决它?

pim*_*vdb 5

meaning.innerHTML += ')';比你想象的还要多.在视觉上它只是附加一个)角色,但在幕后发生的是:

meaning.innerHTML = meaning.innerHTML + ')';
Run Code Online (Sandbox Code Playgroud)

因此,您首先将DOM转换为字符串表示形式(HTML),然后添加一个)字符,最后将其从HTML转换回DOM.HTML表示的所有元素都会再次创建,meaning并由这些新元素替换.所以你的旧的被破坏了.

最简单的解决方案是使用createTextNode:http://jsfiddle.net/WcnCB/4/.

meaning.appendChild(document.createTextNode(")"));
Run Code Online (Sandbox Code Playgroud)