`
ice-cream
  • 浏览: 321501 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

删除空白子节点

阅读更多
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
<title>nav</title>  
<script type="text/javascript">	
	function test(){	
		var navId = document.getElementById("nav");
		var childNum = navId.childNodes;
		for(var i = 0;i<childNum.length;i++){
		var node = childNum[i];
		if (node.nodeType == Node.TEXT_NODE && /\s/.test(node.nodeValue)){
			node.parentNode.removeChild(node);
		}	
	}
	alert(childNum.length);
}	
</script>
</head>    
<body onload="test();">  
<dl id="nav">
	<dd>
		<ul>
			<li>111</li>
		</ul>	
	</dd>
	<dd>
		<ul>
			<li>222</li>
		</ul>	
	</dd>
	<dd>
		<ul>
			<li>333</li>
		</ul>	
	</dd>
</dl>
</body>
</html> 

      这是一个很常见的bug,浏览器里会把标签之间的空白处也认为是一个子节点,如果要正确的得到子节点的个数,必须把空白的节点删除。

      关键点:if (node.nodeType == Node.TEXT_NODE && /\s/.test(node.nodeValue)).如果节点的类型是Node.TEXT_NODE (3)(即: 纯文本,它没有子节点)并且内容为空白字符。

分享到:
评论

相关推荐

    JavaScript的removeChild()函数用法详解

    在火狐、谷歌和IE8以上浏览器中,空白也算是一个文本节点,但是在IE8和IE8以下浏览器中会忽略空白文本节点,具体可以参阅javascript如何获取元素的子节点和父节点 一章节。 代码实例: 实例一: &lt;!DOCTYPE html&gt; ...

    MFC 树控件

    自己写的树控件 继承标准MFC类:CTreeCtrl 支持单节点右键操作 新增子节点 兄弟节点 修改当前节点 删除节点 如果是叶子节点 使用工具:VS2010

    《javaScrip开发技术大全》源代码

    • sample21.htm 通过字符串的起始位置和结束位置来获得子字符串 • sample22.htm slice()方法的使用 • sample23.htm substr()方法的使用 • sample24.htm 查找子字符串在字符串中...

    FLASH+XML构造下拉菜单 fla源文件

    //读取xml子节点的长度 for (i=0; i; { _root.attachMovie("mc", "mc"+i, i); _root["mc"+i]._y = 100; _root["mc"+i]._x = i*70+110; _root["mc"+i].txt = my_xml.firstChild.childNodes.attributes.nume; //读取...

    闪游浏览器2.28正式版

    闪游浏览器 2.28 正式版(2011年10月11日发布)功能改进: 修正:设置标签所在网页焦点时,如果当前标签已经关闭,会导致崩溃的问题 ...修正:清理历史记录完成后没有将侧边栏的对应树节点删除的问题

    ExtAspNet_v2.3.2_dll

    -增加示例(data/tree_select_run.aspx),如何选中当前节点的所有子节点(feedback:wjl_wjl520)。 +TreeNode的属性NodeId被重命名为NodeID,这是ExtAspNet中的一个命名约定。 -同时更名的还有GridColumn的...

    JavaScript详解(第2版)

     15.3.1 父节点和子节点   15.3.2 兄弟节点   15.3.3 nodeName和nodeType属性   15.3.4 空白bug   15.4 遍历DOM   15.5 DOM查看器   15.6 查询DOM的快捷方式   15.6.1 document.getElement-...

    精易模块[源码] V5.15

    5、公开子程序(字节集_到文本|字节集_到整数|字节集_取左边|字节集_取右边|字节集_取空白|字节集_取长度|字节集_取中间|字节集_替换|字节集_寻找|字节集_取指针)模块原有命令。 6、修正“文本_取中间_批量”当参数...

    【最新版】wechat_devtools_1.02.2004020.dmg【亲测可用】最好的微信开发者工具

    F 修复 Wxml 面板丢失 text 标签子节点的问题 F 修复 上传时文件体积大小提示错误问题 反馈详情 F 修复 使用非等宽字体时光标可能错位的问题 F 修复 文件系统 api 读取代码包内文件规则与真机不一致的问题 A ...

    XMl实用大全(资料全易学习)

    14.17 删除和保留空白 501 14.18 选择 503 14.18.1 xsl:if 503 14.18.2 xsl:choose 503 14.19 合并多个样式单 505 14.19.1 使用xsl:import进行录入 505 14.19.2 使用xsl:include进行包括 505 14.19.3 使用xsl:...

    TortoiseSVN和TortoiseMerge的中文帮助文档(chm格式)

    4.10.2. 行结束符和空白选项 4.10.3. 比较文件夹 4.10.4. 使用 TortoiseIDiff 进行比较的图像 4.10.5. Diffing Office Documents 4.10.6. 其他的比较/合并工具 4.11. 添加新文件和目录 4.12. 复制/移动/重命名文件和...

    xml入门教程/xml入门教程

    空白符指空格、回车等 XML文件事例 &lt;?xml verson="1.0"?&gt;&lt;!--这一句一定要求写在文件的第一行--&gt; &lt;!--只能有一个根元素即那一对根标签--&gt; &lt;root&gt;&lt;!--根标签--&gt; &lt;!--根元素的内容--&gt; &lt;leaf&gt;&lt;!--子元素--&gt; ... ...

    xml实用大全和轻松学习手册和无废话xml

    14.17 删除和保留空白 501 14.18 选择 503 14.18.1 xsl:if 503 14.18.2 xsl:choose 503 14.19 合并多个样式单 505 14.19.1 使用xsl:import进行录入 505 14.19.2 使用xsl:include进行包括 505 14.19.3 使用xsl:...

    入门学习Linux常用必会60个命令实例详解doc/txt

    -s,--strip:用strip命令删除symbol table,只适用于第一及第二种使用格式。 -S,--suffix=后缀:自行指定备份文件的&lt;后缀&gt;。 -v,--verbose:处理每个文件/目录时印出名称。 --help:显示此帮助信息...

    SVN操作手册中文版网页格式

    4.10.2. 行结束符和空白选项 4.10.3. 比较文件夹 4.10.4. 使用 TortoiseIDiff 进行比较的图像 4.10.5. 其他的比较/合并工具 4.11. 添加新文件和目录 4.12. Copying/Moving/Renaming Files and Folders 4.13. ...

    超实用的jQuery代码段

    9.30 用jQuery删除空白标签和具有非中断空格的标签 第10章 jQuery Mobile移动开发技巧 10.1 让页面自适应屏幕宽度 10.2 在移动设备页面中创建多个显示视图 10.3 创建对话框显示效果 10.4 从外部文件中加载页面内容 ...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -增加示例(data/tree_select_run.aspx),如何选中当前节点的所有子节点(feedback:wjl_wjl520)。 +TreeNode的属性NodeId被重命名为NodeID,这是ExtAspNet中的一个命名约定。 -同时更名的还有GridColumn的...

    UNIX Handbook

    22.awk输出至少一个域的所有行 可用来将一个文档里的所有空白行删除 36 23.awk输出范围在0 到100 之间的7 个随机数 36 24.awk将所有用户的login名称依照字母的顺序输出 36 25.awk将一个文档的总行数输出 36 26....

    XML实用大全----xml详细参考书

    13.2.3 后代和子代选择符... 394 13.2.4 直系同属选择符... 396 13.2.5 特性选择符... 396 13.2.6 @规则... 396 13.2.7 伪元素... 400 13.2.8 伪类... 401 13.3 格式化页面... 403 13.3.1 大小属性... 403 ...

Global site tag (gtag.js) - Google Analytics