精通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中对对层的控制
Dec 29 Javascript
Javascript 实现TreeView CheckBox全选效果
Jan 11 Javascript
js FLASH幻灯片字符串中有连接符&的处理方法
Mar 01 Javascript
JavaScript判断一个字符串是否包含指定子字符串的方法
Mar 18 Javascript
js删除数组元素、清空数组的简单方法(必看)
Jul 27 Javascript
微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例
Nov 22 Javascript
JavaScript中定义对象原型的两种使用方法
Dec 15 Javascript
利用jquery实现实时更新歌词的方法
Jan 06 Javascript
vue router路由嵌套不显示问题的解决方法
Jun 17 Javascript
angularJS实现动态添加,删除div方法
Feb 27 Javascript
vue el-table实现自定义表头
Dec 11 Javascript
深入详解JS函数的柯里化
Jun 09 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
教你IIS6的PHP最佳配置方法
2006/09/05 PHP
php学习笔记之面向对象编程
2012/12/29 PHP
使用php清除bom示例
2014/03/03 PHP
PHP中new static()与new self()的比较
2016/08/19 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
2017/08/28 PHP
js 得到文件后缀(通过正则实现)
2013/07/08 Javascript
Javascript中Array.prototype.map()详解
2014/10/22 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记6)
2015/12/20 Javascript
js简单获取表单中单选按钮值的方法
2016/08/23 Javascript
JS 滚动事件window.onscroll与position:fixed写兼容IE6的回到顶部组件
2016/10/10 Javascript
Javascript基于jQuery UI实现选中区域拖拽效果
2016/11/25 Javascript
canvas实现图像截取功能
2017/02/06 Javascript
原生JS实现层叠轮播图
2017/05/17 Javascript
vue实现个人信息查看和密码修改功能
2018/05/06 Javascript
Node.js连接Sql Server 2008及数据层封装详解
2018/08/27 Javascript
JavaScript栈和队列相关操作与实现方法详解
2018/12/07 Javascript
vue 集成 vis-network 实现网络拓扑图的方法
2019/08/07 Javascript
python的几种开发工具介绍
2007/03/07 Python
使用setup.py安装python包和卸载python包的方法
2013/11/27 Python
Windows下安装python2.7及科学计算套装
2015/03/05 Python
基于python实现微信模板消息
2015/12/21 Python
Python基础教程之正则表达式基本语法以及re模块
2016/03/25 Python
Python实现将Excel转换为json的方法示例
2017/08/05 Python
PyQt5实现简单数据标注工具
2019/03/18 Python
如何使用python传入不确定个数参数
2020/02/18 Python
python脚本和网页有何区别
2020/07/02 Python
基于python实现简单C/S模式代码实例
2020/09/14 Python
python中append函数用法讲解
2020/12/11 Python
阿里健康官方海外旗舰店:阿里健康国际自营
2017/11/24 全球购物
《夸父追日》教学反思
2014/02/26 职场文书
关于护士节的演讲稿
2014/05/26 职场文书
预防传染病方案
2014/06/14 职场文书
六一领导慰问欢迎词
2015/01/26 职场文书
银行求职自荐信范文
2015/03/04 职场文书
六一晚会主持词开场白
2015/05/28 职场文书
DIV CSS实现网页背景半透明效果
2021/12/06 HTML / CSS