精通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 相关文章推荐
用js实现上传图片前的预览(TX的面试题)
Aug 14 Javascript
jQuery Lightbox 图片展示插件使用说明
Apr 25 Javascript
Extjs中ComboBoxTree实现的下拉框树效果(自写)
May 28 Javascript
JavaScript实现鼠标滑过图片变换效果的方法
Apr 16 Javascript
小白谈谈对JS原型链的理解
May 03 Javascript
jquery插件uploadify多图上传功能实现代码
Aug 12 Javascript
JavaScript-html标题滚动效果的简单实现
Sep 08 Javascript
JS访问DOM节点方法详解
Nov 29 Javascript
移动端如何用下拉刷新的方式实现上拉加载
Dec 10 Javascript
原生js通过一行代码实现简易轮播图
Jun 05 Javascript
vue实现的多页面项目如何优化打包的步骤详解
Jul 19 Javascript
jquery实现点击左右按钮切换图片
Jan 27 jQuery
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
第一个无线电台是由谁发明的
2021/03/01 无线电
php更改目录及子目录下所有的文件后缀的代码
2010/09/24 PHP
php基本函数汇总
2015/07/09 PHP
详解PHP的Yii框架中日志的相关配置及使用
2015/12/08 PHP
PHP数据库操作Helper类完整实例
2016/05/11 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
动态加载js文件 document.createElement
2006/10/14 Javascript
js 匿名调用实现代码
2009/06/19 Javascript
jQuery的Ajax时无响应数据的解决方法
2010/05/25 Javascript
5个javascript的数字格式化函数分享
2011/12/07 Javascript
javascipt基础内容--需要注意的细节
2013/04/10 Javascript
Jquery实现遮罩层的简单实例(就是弹出DIV周围都灰色不能操作)
2016/07/14 Javascript
div实现自适应高度的textarea实现angular双向绑定
2017/01/08 Javascript
详解Vue自定义过滤器的实现
2017/01/10 Javascript
JS实现数组的增删改查操作示例
2018/08/29 Javascript
vue删除html内容的标签样式实例
2018/09/13 Javascript
vue中Element-ui 输入银行账号每四位加一个空格的实现代码
2018/09/14 Javascript
vue如何自动化打包测试环境和正式环境的dist/test文件
2019/06/06 Javascript
解决vue无法侦听数组及对象属性的变化问题
2020/07/17 Javascript
[01:12:35]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
python使用xauth方式登录饭否网然后发消息
2014/04/11 Python
TensorFlow实现简单卷积神经网络
2018/05/24 Python
pytorch + visdom 处理简单分类问题的示例
2018/06/04 Python
Flask Web开发入门之文件上传(八)
2018/08/17 Python
pytorch 调整某一维度数据顺序的方法
2018/12/08 Python
对Python 简单串口收发GUI界面的实例详解
2019/06/12 Python
python turtle库画一个方格和圆实例
2019/06/27 Python
如何将你的应用迁移到Python3的三个步骤
2019/12/22 Python
html5 figure和figcaption的使用方法
2018/09/10 HTML / CSS
爱心活动计划书
2014/04/26 职场文书
学习雷锋精神演讲稿
2014/05/10 职场文书
爱护公物演讲稿
2014/09/09 职场文书
授权委托书怎么写
2014/09/25 职场文书
消防宣传标语大全
2015/08/03 职场文书