精通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控件autocomplete 0.11演示及下载 1月5日已更新
Jan 09 Javascript
js 模拟气泡屏保效果代码
Jul 10 Javascript
JavaScript高级程序设计(第3版)学习笔记6 初识js对象
Oct 11 Javascript
限制上传文件大小和格式的jQuery插件实例
Jan 24 Javascript
使用vue.js开发时一些注意事项
Apr 27 Javascript
浅谈JS原生Ajax,GET和POST
Jun 08 Javascript
全屏滚动插件fullPage.js使用实例解析
Oct 21 Javascript
JQuery实现动态操作表格
Jan 11 Javascript
微信小程序 跳转传递数据的实例
Jul 06 Javascript
JS 使用 window对象的print方法实现分页打印功能
May 16 Javascript
浅析vue-router jquery和params传参(接收参数)$router $route的区别
Aug 03 jQuery
全面分析JavaScript 继承
May 30 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实现定时生成HTML网站首页实例代码
2008/11/20 PHP
PHP缩略图等比例无损压缩,可填充空白区域补充色
2011/06/10 PHP
解析在PHP中使用全局变量的几种方法
2013/06/24 PHP
PHP连接MSSQL方法汇总
2016/02/05 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
2017/05/02 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
thinkphp框架类库扩展操作示例
2019/11/26 PHP
dojo 之基础篇(二)之从服务器读取数据
2007/03/24 Javascript
JavaScript实现时间倒计时跳转(推荐)
2016/06/28 Javascript
jQuery实现导航滚动到指定内容效果完整实例【附demo源码下载】
2016/09/20 Javascript
js中this对象用法分析
2018/01/05 Javascript
Vue组件中slot的用法
2018/01/30 Javascript
jQuery 判断元素是否存在然后按需加载内容的实现代码
2020/01/16 jQuery
[03:23]我的刀塔你不可能这么可爱 第一期金萌萌的故事
2014/06/20 DOTA
[03:36]DOTA2完美大师赛coL战队趣味视频——我演你猜
2017/11/23 DOTA
用Python中的wxPython实现最基本的浏览器功能
2015/04/14 Python
使用Python操作MySQL的一些基本方法
2015/08/16 Python
Python 元组拆包示例(Tuple Unpacking)
2019/12/24 Python
Android Q之气泡弹窗的实现示例
2020/06/23 Python
python实现登录与注册系统
2020/11/30 Python
Python OpenCV中的numpy与图像类型转换操作
2020/12/11 Python
墨西哥网上购物:Linio墨西哥
2016/10/20 全球购物
英国的屈臣氏:Boots博姿
2017/12/23 全球购物
一家外企的面试题目(C/C++面试题,C语言面试题)
2014/03/24 面试题
经典c++面试题五
2014/12/17 面试题
大学生思想汇报范文
2013/12/31 职场文书
20年同学聚会感言
2014/02/03 职场文书
家庭教育的心得体会
2014/09/01 职场文书
党的群众路线教育实践活动心得体会(企业)
2014/11/03 职场文书
先进教师个人总结
2015/02/11 职场文书
法人代表资格证明书
2015/06/18 职场文书
2019年销售人员的职业生涯规划书
2019/03/25 职场文书
JavaScript控制台的更多功能
2021/04/28 Javascript
MySQL优化之如何写出高质量sql语句
2021/05/17 MySQL
Python 读写 Matlab Mat 格式数据的操作
2021/05/19 Python
nginx结合openssl实现https的方法
2021/07/25 Servers