精通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 相关文章推荐
图片之间的切换
Jun 26 Javascript
Jquery AutoComplete自动完成 的使用方法实例
Mar 19 Javascript
javascript 学习笔记(八)javascript对象
Apr 12 Javascript
利用jQuery简单实现产品展示图片左右滚动功能(示例代码)
Jan 02 Javascript
jquery京东商城双11焦点图多图广告特效代码分享
Sep 06 Javascript
Bootstrap网格系统详解
Apr 26 Javascript
JavaScript简单下拉菜单特效
Sep 13 Javascript
详解vue.js移动端导航navigationbar的封装
Jul 05 Javascript
JavaScript实现购物车基本功能
Jul 21 Javascript
浅谈在Vue-cli里基于axios封装复用请求
Nov 06 Javascript
在vue项目中利用popstate处理页面返回的操作介绍
Aug 06 Javascript
vue动态设置路由权限的主要思路
Jan 13 Vue.js
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
ExtJS与PHP、MySQL实现存储的方法
2010/04/02 PHP
php数组的概述及分类与声明代码演示
2013/02/26 PHP
PHP文件上传主要代码讲解
2013/09/30 PHP
php时区转换转换函数
2014/01/07 PHP
微信小程序 点击控件后选中其它反选实例详解
2017/02/21 Javascript
vue-router+nginx 非根路径配置方法
2018/06/30 Javascript
vue基于element的区间选择组件
2018/09/07 Javascript
vue自动化路由的实现代码
2019/09/30 Javascript
nginx配置域名后的二级目录访问不同项目的配置操作
2020/11/06 Javascript
[02:08]DOTA2英雄基础教程 马格纳斯
2014/01/17 DOTA
解决项目pycharm能运行,在终端却无法运行的问题
2019/01/19 Python
Python生成rsa密钥对操作示例
2019/04/26 Python
pyqt5 键盘监听按下enter 就登陆的实例
2019/06/25 Python
Django多数据库的实现过程详解
2019/08/01 Python
Python适配器模式代码实现解析
2019/08/02 Python
Python3 xml.etree.ElementTree支持的XPath语法详解
2020/03/06 Python
Python动态强类型解释型语言原理解析
2020/03/25 Python
Python导入模块包原理及相关注意事项
2020/03/25 Python
Python如何爬取51cto数据并存入MySQL
2020/08/25 Python
Python3.7安装PyQt5 运行配置Pycharm的详细教程
2020/10/15 Python
python批量提取图片信息并保存的实现
2021/02/05 Python
python利用opencv实现颜色检测
2021/02/23 Python
利用CSS3实现圆角的outline效果的教程
2015/06/05 HTML / CSS
澳大利亚潮流尖端的快时尚品牌:Cotton On
2016/09/26 全球购物
澳大利亚运动鞋零售商:The Athlete’s Foot
2018/11/04 全球购物
橄榄树药房:OLIVEDA
2019/09/01 全球购物
仓库班组长岗位职责
2013/12/12 职场文书
机械设计职业生涯规划书
2013/12/27 职场文书
车祸赔偿收入证明
2014/01/09 职场文书
幼儿园校车司机的岗位职责
2014/01/30 职场文书
数学检讨书1000字
2014/02/24 职场文书
家长建议怎么写
2014/05/15 职场文书
营业用房租赁协议书
2014/11/26 职场文书
装配车间主任岗位职责
2015/04/08 职场文书
学历证明范文
2015/06/16 职场文书
网吧管理制度范本
2015/08/05 职场文书