<div id="divid" >
<!--sdfdf-->
</div>var nodes=document.getElementsByTagName("divid");
for(var i=0;i<nodes.length;i++)
{
if(nodes[i].nodeType!=Node.ELEMENT_NODE)
{
obj.removeChild(nodes[i]);
}
}
return nodes;为什么不能把注释节点删掉的呀??求解···
<!--sdfdf-->
</div>var nodes=document.getElementsByTagName("divid");
for(var i=0;i<nodes.length;i++)
{
if(nodes[i].nodeType!=Node.ELEMENT_NODE)
{
obj.removeChild(nodes[i]);
}
}
return nodes;为什么不能把注释节点删掉的呀??求解···
解决方案 »
- 一个滑动门效果在vs2010里报错
- var notifier = new Backbone.Notifier(); 缺少对象
- Google map 返回坐标值
- jsp能不能js中的内容
- 网页用mideaplay播放时一执行javascript就播止
- div层添加图片为什么老是在div层的后面?
- 请问如何返回Div标签里面被选中的文本在所有文本中的索引?
- 在mozilla等效的语句应如何写
- 怎么用 可视高度判断 提示框显示在可视高度的上半部分显示还是在下半部分显示
- 师傅快来啊!!当你刷新一个页面的时候,出现一个警告框(不重新发送信息。则无法刷新网页,请单击重试重新发送信息……)如何屏蔽掉这个警告框?谢谢
- jQuery ui实现左右模块数据拖动并将数据保存到数据库
- 这个JS应该怎么改,求助
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head><body>
<div id="divid">
<!--sdfdf-->
</div><script type="text/javascript">
var nodes = document.getElementById('divid');
for (var i = 0; i < nodes.childNodes.length; i ++) {
if (nodes.childNodes[i].nodeType == 8) nodes.removeChild(nodes.childNodes[i]);
}
alert(nodes.childNodes);
</script>
</body>
</html>
div有3个子节点,分别是空文本节点、注释节点、空文本节点。
for(var i=0;i<nodes.length;i++)
这样的循环,你删第1个子节点之后,nodes.length==2,i==1,这时nodes[0]是注释,nodes[1]是最后的空文本节点,因为i是1,所以跳过注释删了最后的空文本节点。
正确的做法是从后往前循环。var nodes=document.getElementsByTagName("divid").childNodes;
for(var i=nodes.length-1;i>=0;i--)
{
if(nodes[i].nodeType!=Node.ELEMENT_NODE)
{
obj.removeChild(nodes[i]);
}
}
return nodes;