精通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 操作符实例代码
Oct 24 Javascript
只需20行代码就可以写出CSS覆盖率测试脚本
Apr 24 Javascript
Jquery对象和Dom对象的区别分析
Nov 20 Javascript
使用window.prompt()实现弹出用户输入的对话框
Apr 13 Javascript
jquery表单插件Autotab使用方法详解
Jun 24 Javascript
十大 Node.js 的 Web 框架(快速提升工作效率)
Jun 30 Javascript
Bootstrap实现翻页效果
Nov 27 Javascript
Babel 入门教程学习笔记
Jun 13 Javascript
angularJs中$scope数据序列化的实例
Sep 30 Javascript
Vuejs监听vuex中值的变化的方法示例
Dec 02 Javascript
详解js加减乘除精确计算
Mar 19 Javascript
vue 实现通过vuex 存储值 在不同界面使用
Nov 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
深入了解php4(1)--回到未来
2006/10/09 PHP
PHP简单系统数据添加以及数据删除模块源文件下载
2008/06/07 PHP
PHP小教程之实现链表
2014/06/09 PHP
php curl登陆qq后获取用户信息时证书错误
2015/02/03 PHP
PHP封装的Twitter访问类实例
2015/07/18 PHP
CentOS下搭建PHP环境与WordPress博客程序的全流程总结
2016/05/07 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
表单填写时用回车代替TAB的实现方法
2007/10/09 Javascript
div模拟滚动条效果示例代码
2013/10/16 Javascript
js中如何复制一个对象并获取其所有属性和属性对应的值
2013/10/24 Javascript
javascript实现删除前弹出确认框
2015/06/04 Javascript
如何提高Dom访问速度
2017/01/05 Javascript
jquery实现左右轮播切换效果
2018/01/01 jQuery
vue-baidu-map 进入页面自动定位的解决方案(推荐)
2018/04/28 Javascript
Vue2.0点击切换类名改变样式的方法
2018/08/22 Javascript
Vue-Router的使用方法
2018/09/05 Javascript
微信小程序开发之tabbar图标和颜色的实现
2018/10/17 Javascript
JS实现页面跳转与刷新的方法汇总
2019/08/30 Javascript
解决layer弹出层中表单不起作用的问题
2019/09/09 Javascript
Python httplib,smtplib使用方法
2008/09/06 Python
python sys模块sys.path使用方法示例
2013/12/04 Python
Python中的数据对象持久化存储模块pickle的使用示例
2016/03/03 Python
python爬虫获取淘宝天猫商品详细参数
2020/06/23 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
2019/08/05 Python
Python内置异常类型全面汇总
2020/05/28 Python
OpenCV+python实现膨胀和腐蚀的示例
2020/12/21 Python
基于HTML5的WebGL经典3D虚拟机房漫游动画
2017/11/15 HTML / CSS
Canvas实现贝赛尔曲线轨迹动画的示例代码
2019/04/25 HTML / CSS
美国折扣香水网站:The Perfume Spot
2020/12/12 全球购物
党支部书记先进事迹
2014/01/17 职场文书
大型车展策划方案
2014/02/01 职场文书
高效课堂标语
2014/06/26 职场文书
2014年小学工作总结
2014/11/26 职场文书
死者家属慰问信
2015/03/24 职场文书
污染环境建议书
2015/09/14 职场文书
2015元旦感言
2015/12/09 职场文书