精通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 preload&amp;lazy load
May 13 Javascript
juqery 学习之三 选择器 子元素与表单
Nov 25 Javascript
jQuery判断密码强度实现思路及代码
Apr 24 Javascript
js实现数组去重、判断数组以及对象中的内容是否相同
Nov 29 Javascript
关于onchange事件在IE和FF下的表现及解决方法
Mar 08 Javascript
JavaScript实现将数组数据添加到Select下拉框的方法
Aug 21 Javascript
JS实现商品筛选功能
Aug 19 Javascript
protractor的安装与基本使用教程
Jul 07 Javascript
node.js 利用流实现读写同步,边读边写的方法
Sep 11 Javascript
纯js实现无缝滚动功能代码实例
Feb 21 Javascript
js实现3D旋转相册
Aug 02 Javascript
在vue中使用回调函数,this调用无效的解决
Aug 11 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数组实例总结与说明
2011/08/23 PHP
zf框架的校验器使用使用示例(自定义校验器和校验器链)
2014/03/13 PHP
浅谈PHP中JSON数据操作
2015/07/01 PHP
PHP如何使用Memcached
2016/04/05 PHP
Yii CDBCriteria常用方法实例小结
2017/01/19 PHP
PHP判断json格式是否正确的实现代码
2017/09/20 PHP
PHP 对象接口简单实现方法示例
2020/04/13 PHP
JavaScript面向对象程序设计三 原型模式(上)
2011/12/21 Javascript
JS的千分位算法实现思路
2013/07/31 Javascript
JavaScript实现自动变换表格边框颜色
2015/05/08 Javascript
JavaScript调用传递变量参数的相关问题及解决办法
2015/11/01 Javascript
关于javascript中dataset的问题小结
2015/11/16 Javascript
javascript 常用验证函数总结
2016/06/28 Javascript
JS自定义混合Mixin函数示例
2016/11/26 Javascript
Bootstrap table表格简单操作
2017/02/07 Javascript
基于angular-utils-ui-breadcrumbs使用心得(分享)
2017/11/03 Javascript
react高阶组件添加和删除props
2019/04/26 Javascript
解析JS在获取当前月的最后一天遇到的坑
2019/08/30 Javascript
layui-table对返回的数据进行转变显示的实例
2019/09/04 Javascript
JS forEach跳出循环2种实现方法
2020/06/24 Javascript
Python多进程分块读取超大文件的方法
2016/04/13 Python
python SMTP实现发送带附件电子邮件
2018/05/22 Python
python 常见字符串与函数的用法详解
2018/11/23 Python
在Django的View中使用asyncio的方法
2019/07/12 Python
Python数据库小程序源代码
2019/09/15 Python
python中栈的原理及实现方法示例
2019/11/27 Python
SQL Server 2000数据库的文件有哪些,分别进行描述。
2015/11/09 面试题
会计实习生自我鉴定
2013/12/12 职场文书
岗位职责说明书
2014/05/07 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
母亲节寄语大全
2015/02/27 职场文书
幼儿园中秋节活动总结
2015/03/23 职场文书
2015年劳动部工作总结
2015/05/23 职场文书
化工生产实习心得体会
2016/01/22 职场文书
vue基于Teleport实现Modal组件
2021/05/31 Vue.js
数据库之SQL技巧整理案例
2021/07/07 SQL Server