绝不轻易狗带
2016-08-08 11:35
function replaceMessage(){
var italic = document.createElement("i");
var testdiv = document.getElementsByTagName("div");
testdiv.appendChild(italic);
var oldnode = document.getElementById("oldnode");
testdiv.replaceChild(italic,oldnode);
}
就是添加一个i 节点啊 然后用这个new的i节点 替换b节点嘛
咋一点反应都没有 。。。
当 oldnode 被替换时,所有与之相关的属性内容都将被移除。所以文本Javascript消失。
你整个过程把HTML变成了 :
<div> <i></i>(←testdiv.appendChild(italic添加造成); <i></i>(←testdiv.replaceChild(italic,oldnode替换造成); 是一个很常用的技术,为网页添加动态效果 </div>
个人见解,有错清指出谢谢
我觉得,首先只有父结点才能调用 replaceChild(newnode,oldnode).这个方法,所以说在使用替换这一方法时,不要直接获取父辈div,应使用父节点.还有替换i标签应该赋予内容。
function replaceMessage(){
var italic = document.createElement("i");
var oldnode = document.getElementById("oldnode");
var newnodeText=document.createTextNode("JavaScript");
italic.appendChild(newnodeText);
oldnode.parentNode.replaceChild(italic,oldnode);
}
function replaceMessage(){
var oldnode=document.getElementById("oldnode");
var newnode=document.createElement("i");
newnode.innerHTML=oldnode.innerHTML;
oldnode.parentNode.replaceChild(newnode,oldnode);
}
你改成这样试试。个人意见。
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题