举例中,代码为:
<script type="text/javascript">
function replaceMessage(){
var newnode=document.createElement("p");
var newnodeText=document.createTextNode("JavaScript");
newnode.appendChild(newnodeText);
var oldNode=document.getElementById("oldnode");
oldNode.parentNode.replaceChild(newnode,oldNode);
}
</script>
<h1 id="oldnode">Java</h1>
<a href="javascript:replaceMessage()">"Java"替换"JavaScript"</a>
为什么不可以写成:
<script type="text/javascript">
function replaceMessage(){
var newnode=document.createElement("p");
newnode.appendChild(newnodeText);
newnodeText.innerHTML="JavaScript";
var oldNode=document.getElementById("oldnode");
oldNode.parentNode.replaceChild(newnode,oldNode);
}
</script>
<h1 id="oldnode">Java</h1>
<a href="javascript:replaceMessage()">"Java"替换"JavaScript"</a>
第一种方法:你创建了一个P标签节点,一个文本节点,所以将文本节点插入到P节点后面是可以的。
第二种方法:你只创建了一个P节点,想用innerHTML来显示内容,但innerHTML是直接显示指定标签的内容或者赋值给指定标签。你用newnodeText这个是没有意义的,这是个变量名,需要声明、赋值、调用,如你的第一种方法,不能直接拿来用,所以正确的写法是:
<script type="text/javascript">
function replaceMessage(){
var newnode=document.createElement("p");
newnode.innerHTML="JavaScript";
var oldNode=document.getElementById("oldnode");
oldNode.parentNode.replaceChild(newnode,oldNode);
}
</script>