新手为什么在火狐和谷歌删除节点要点两次按钮才能删除
新手求助:为什么在火狐和谷歌删除节点要点两次按钮才能删除
------解决方案--------------------
//主要代码是这个,判断你自己加上就好了。
paradiv.removeChild(paradiv.getElementsByTagName('p')[0]);
在谷歌下面你的paradiv.firstChild获取的是text,而不是p标签,第二次获取的是p标签,你可以设置断点看一下。就明白了。
------解决方案--------------------
可能有空的文本节点吧,对于html中的文本节点各浏览器可能不太一样。
可以先判断下对象是不是文本节点if(node.nodeType==3)再做处理
<html>
<head>
</head>
<body>
<script>
function add(){
var newElem=document.createElement("p");
var newElem_Text=document.createTextNode("新添加的节点");
newElem.appendChild(newElem_Text);
var div_addElem=document.getElementById("div1");
div_addElem.appendChild(newElem);
}
function del(){
var paradiv=document.getElementById("div1");
paradiv.removeChild(paradiv.firstChild);
}
</script>
<div id="div1">
<p>段落1</p>
<p>段落2</p>
</div>
<button onclick="add()">add</button>
<button onclick="del()">del</button>
</body>
</html>
------解决方案--------------------
//主要代码是这个,判断你自己加上就好了。
paradiv.removeChild(paradiv.getElementsByTagName('p')[0]);
在谷歌下面你的paradiv.firstChild获取的是text,而不是p标签,第二次获取的是p标签,你可以设置断点看一下。就明白了。
------解决方案--------------------
可能有空的文本节点吧,对于html中的文本节点各浏览器可能不太一样。
可以先判断下对象是不是文本节点if(node.nodeType==3)再做处理