<div><b id="oldnode">JavaScript</b>是一个很常用的技术,为网页添加动态效果。</div> <a href="javascript:replaceMessage()"> 将加粗改为斜体</a> <script type="text/javascript"> function replaceMessage(){ var newnode = document.createElement("i"); var newnodeText = document.createTextNode("JavaScript"); newnode.appendChild(newnodeText); //newnode.innHTML = "JavaScript"; //console.log(newnode); var oldnode = document.getElementById("oldnode"); oldnode.parentNode.replaceChild(newnode,oldnode); }
我试了用innerHTML是可以的
用newnode.innerHTML="JavaScript"其实也是可以实现的。innerHTML和createTextNode都可以把一段内容添加到一个节点中,区别是如果这段内容中有html标签(如你的例子中的)时表现就不同了,在createTextNode中会当作文本处理,不会被浏览器解析
createTextNode() 方法创建新的文本节点,而newnode.innHTML = "JavaScript";还是那个元素结点,只是值变成了 "JavaScript