精通JavaScript 纠正 cleanWhitespace函数


Posted in Javascript onMarch 11, 2010
function cleanWhitespace(element){ 
//如果不提供参数,则处理整个HTML文档 
element = element || document; 
//使用第一个子节点作为开始指针 
var cur = element.firstChild; 
//临时变量用来保存当前节点的下个节点 
var tmp; 
//一直到没有子节点为止 
while (cur != null){ 
//保存当前节点的下个节点 
tmp=cur.nextSibling 
//如果节点为文本节点,应且包含空格 
if ( cur.nodeType == 3 && ! /\S/.test(cur.nodeValue)){ 
//删除这个文本节点 
element.removeChild( cur ); 
//否则,它就是一个元素 
} else if (cur.nodeType == 1){ 
//递归整个文档 
cleanWhitespace( cur ); 
} 
cur = tmp;//遍历子节点 
} 
}

还转一个可以用的
function cleanWhitespace2(node) { 
var notWhitespace = /\S/; 
for (var i=0; i < node.childNodes.length; i++) { 
var childNode = node.childNodes[i]; 
if ((childNode.nodeType == 3)&&(!notWhitespace.test(childNode.nodeValue))) { 
node.removeChild(node.childNodes[i]); 
i--; 
} 
if (childNode.nodeType == 1) { 
cleanWhitespace2(childNode); 
} 
} 
}

如果只清除本节点的空白,不遍历子节点
function cleanWhitespace2(oEelement) 
{ 
for(var i=0;i<oEelement.childNodes.length;i++){ 
var node=oEelement.childNodes[i]; 
if(node.nodeType==3 && !/\S/.test(node.nodeValue)){node.parentNode.removeChild(node)} 
} 
}

还转一个可以用的
function cleanWhitespace2(node) { 
var notWhitespace = /\S/; 
for (var i=0; i < node.childNodes.length; i++) { 
var childNode = node.childNodes[i]; 
if ((childNode.nodeType == 3)&&(!notWhitespace.test(childNode.nodeValue))) { 
node.removeChild(node.childNodes[i]); 
i--; 
} 
if (childNode.nodeType == 1) { 
cleanWhitespace2(childNode); 
} 
} 
}

如果只清除本节点的空白,不遍历子节点
function cleanWhitespace2(oEelement) 
{ 
for(var i=0;i<oEelement.childNodes.length;i++){ 
var node=oEelement.childNodes[i]; 
if(node.nodeType==3 && !/\S/.test(node.nodeValue)){node.parentNode.removeChild(node)} 
} 
}
Javascript 相关文章推荐
javascript 循环读取JSON数据的代码
Jul 17 Javascript
Javascript中的String对象详谈
Mar 03 Javascript
js动态添加表格数据使用insertRow和insertCell实现
May 22 Javascript
js图片闪动特效可以控制间隔时间如几分钟闪动一下
Aug 12 Javascript
jQuery实现的数值范围range2dslider选取插件特效多款代码分享
Aug 27 Javascript
js带缩略图的图片轮播效果代码分享
Sep 14 Javascript
js中实现字符串和数组的相互转化详解
Jan 24 Javascript
微信小程序商城项目之侧栏分类效果(1)
Apr 17 Javascript
详解ajax的data参数错误导致页面崩溃
Apr 30 Javascript
mpvue 如何使用腾讯视频插件的方法
Jul 16 Javascript
jQuery实现购物车的总价计算和总价传值功能
Nov 28 jQuery
介绍一下28个JS常用数组方法
May 06 Javascript
Javascript 入门基础学习
Mar 10 #Javascript
javascript showModalDialog,open取得父窗口的方法
Mar 10 #Javascript
ExtJs3.0中Store添加 baseParams 的Bug
Mar 10 #Javascript
js Date自定义函数 延迟脚本执行
Mar 10 #Javascript
js 蒙版进度条(结合图片)
Mar 10 #Javascript
javascript 事件查询综合 推荐收藏
Mar 10 #Javascript
JQuery的html(data)方法与&amp;lt;script&amp;gt;脚本块的解决方法
Mar 09 #Javascript
You might like
php array_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
2011/07/12 PHP
PHP上传图片进行等比缩放可增加水印功能
2014/01/13 PHP
thinkphp连贯操作实例分析
2014/11/22 PHP
PHP针对多用户实现更换头像功能
2016/09/04 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
js打印纸函数代码(递归)
2010/06/18 Javascript
初窥JQuery-Jquery简介 入门了解篇
2010/11/25 Javascript
javascript调试过程中找不到哪里出错的可能原因
2013/12/16 Javascript
jquery移除、绑定、触发元素事件使用示例详解
2014/04/10 Javascript
JavaScript删除指定子元素代码实例
2015/01/13 Javascript
JQuery动画与特效实例分析
2015/02/02 Javascript
JQuery中serialize() 序列化
2015/03/13 Javascript
javascript中Array()数组函数详解
2015/08/23 Javascript
JavaScript实现标题栏文字轮播效果代码
2015/10/24 Javascript
JS通过Cookie判断页面是否为首次打开
2016/02/05 Javascript
js制作支付倒计时页面
2016/10/21 Javascript
Node.js利用debug模块打印出调试日志的方法
2017/04/25 Javascript
nodejs微信扫码支付功能实现
2018/02/17 NodeJs
Vue中使用方法、计算属性或观察者的方法实例详解
2018/10/31 Javascript
在vue项目中使用codemirror插件实现代码编辑器功能
2019/08/27 Javascript
[53:10]完美世界DOTA2联赛决赛日 FTD vs GXR 第二场 11.08
2020/11/11 DOTA
wxPython学习之主框架实例
2014/09/28 Python
CSS去掉A标签(链接)虚线框的方法
2014/04/01 HTML / CSS
利用HTML5绘制点线面组成的3D图形的示例
2015/05/12 HTML / CSS
html5 postMessage解决跨域、跨窗口消息传递方案
2016/12/20 HTML / CSS
雅诗兰黛澳大利亚官网:Estée Lauder澳大利亚
2019/05/31 全球购物
罗技英国官方网站:Logitech UK
2020/11/03 全球购物
MySQL面试题
2014/01/12 面试题
计算机应用与科学个人的自我评价
2013/11/15 职场文书
业务部门经理岗位职责
2014/02/23 职场文书
网络舆情信息简报
2015/07/21 职场文书
公司考勤管理制度
2015/08/04 职场文书
2016年教师节贺卡寄语
2015/12/04 职场文书
你为什么是穷人?可能是这5个缺点造成
2019/07/11 职场文书
python自然语言处理之字典树知识总结
2021/04/25 Python
redis requires ruby version2.2.2的解决方案
2021/07/15 Redis