精通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 自定义函数缺省值的设置方法
May 05 Javascript
奉献给JavaScript初学者的编写开发的七个细节
Jan 11 Javascript
JavaScript Math.ceil() 函数使用介绍
Dec 11 Javascript
JavaScript 继承详解(六)
Oct 11 Javascript
Javascript之深入浅出prototype
Feb 06 Javascript
详解用vue-cli来搭建vue项目和webpack
Apr 20 Javascript
jQuery 表单序列化实例代码
Jun 11 jQuery
原生JS实现的碰撞检测功能示例
May 18 Javascript
javascript异步处理与Jquery deferred对象用法总结
Jun 04 jQuery
vue 使用高德地图vue-amap组件过程解析
Sep 07 Javascript
Vue.js标签页组件使用方法详解
Oct 19 Javascript
jquery实现手风琴案例
May 04 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
PHP中的串行化变量和序列化对象
2006/09/05 PHP
转PHP手册及PHP编程标准
2006/12/17 PHP
删除数组元素实用的PHP数组函数
2008/08/18 PHP
使用Limit参数优化MySQL查询的方法
2008/11/12 PHP
Discuz!下Memcache缓存实现方法
2010/05/28 PHP
php 抽象类的简单应用
2011/09/06 PHP
PHP eval函数使用介绍
2013/12/08 PHP
linux下为php添加iconv模块的方法
2016/02/28 PHP
php set_include_path函数设置 include_path 配置选项
2016/10/30 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
javascript实现yield的方法
2013/11/06 Javascript
js获取字符串最后一位方法汇总
2014/11/13 Javascript
浅谈Javascript中深复制
2014/12/01 Javascript
JavaScript表格常用操作方法汇总
2015/04/15 Javascript
基于javascript实现tab选项卡切换特效调试笔记
2016/03/30 Javascript
用JS生成UUID的方法实例
2016/03/30 Javascript
jQuery使用ajax方法解析返回的json数据功能示例
2017/01/10 Javascript
前端插件之Bootstrap Dual Listbox使用教程
2019/07/23 Javascript
js实现3D旋转效果
2020/08/18 Javascript
Vue绑定用户接口实现代码示例
2020/11/04 Javascript
Python open()文件处理使用介绍
2014/11/30 Python
详解Python中的序列化与反序列化的使用
2015/06/30 Python
Python中getpass模块无回显输入源码解析
2018/01/11 Python
Python 中使用 PyMySQL模块操作数据库的方法
2019/11/10 Python
python 实现批量图片识别并翻译
2020/11/02 Python
澳大利亚领先的在线美容商店:Facial Co
2017/10/22 全球购物
几个SQL的面试题
2014/03/08 面试题
使用C#编写创建一个线程的代码
2013/01/22 面试题
一些Unix笔试题和面试题
2012/09/25 面试题
导师推荐信范文
2014/05/09 职场文书
小学校长汇报材料
2014/08/20 职场文书
领导干部群众路线教育实践活动剖析材料
2014/10/10 职场文书
新生入学欢迎词
2015/01/26 职场文书
喋血孤城观后感
2015/06/08 职场文书
大学班干部竞选稿
2015/11/20 职场文书
七年级作文之我的梦想
2019/10/16 职场文书