精通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 相关文章推荐
jQuery中filter(),not(),split()使用方法
Jul 06 Javascript
jQuery布局插件UI Layout简介及使用方法
Apr 03 Javascript
关于JS字符串函数String.replace()
Apr 07 Javascript
JS中把字符转成ASCII值的函数示例代码
Nov 21 Javascript
jquery实现效果比较好的table选中行颜色
Mar 25 Javascript
微信小程序 网络API 上传、下载详解
Nov 09 Javascript
checkbox:click事件触发span元素内容改变的方法
Sep 11 Javascript
ES6中新增的Object.assign()方法详解
Sep 22 Javascript
js的各种数据类型判断的介绍
Jan 19 Javascript
vue全局自定义指令-元素拖拽的实现代码
Apr 14 Javascript
Node.js实现用户评论社区功能(体验前后端开发的乐趣)
May 09 Javascript
VUE路由动态加载实例代码讲解
Aug 26 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
《OVERLORD》第四季,终于等到你!
2020/03/02 日漫
WAR3重制版DOTA 5V5初体验
2020/04/09 DOTA
php使用fputcsv()函数csv文件读写数据的方法
2015/01/06 PHP
PHP版本升级到7.x后wordpress的一些修改及wordpress技巧
2015/12/25 PHP
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
2016/04/12 PHP
JS控制图片翻转示例代码(兼容firefox,ie,chrome)
2013/12/19 Javascript
js实现横向伸展开的二级导航菜单代码
2015/08/28 Javascript
使用jQuery获取data-的自定义属性
2015/11/10 Javascript
果断收藏9个Javascript代码高亮脚本
2016/01/06 Javascript
JS+CSS实现DIV层的展开、收缩效果
2016/01/28 Javascript
微信小程序 五星评价功能的实现
2017/03/09 Javascript
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
2018/06/05 jQuery
Angular服务Request异步请求的实例讲解
2018/08/13 Javascript
小程序测试后台服务的方法(ngrok)
2019/03/08 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
2019/04/19 Javascript
浅谈vue 组件中的setInterval方法和window的不同
2020/07/30 Javascript
[01:36:19]Secret vs NB 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python翻译软件实现代码(使用google api完成)
2013/11/26 Python
Python中使用第三方库xlutils来追加写入Excel文件示例
2015/04/05 Python
详解Python编程中包的概念与管理
2015/10/16 Python
Python的Tornado框架实现异步非阻塞访问数据库的示例
2016/06/30 Python
Python实现Linux中的du命令
2017/06/12 Python
python实现多层感知器MLP(基于双月数据集)
2019/01/18 Python
python多进程读图提取特征存npy
2019/05/21 Python
python实现把二维列表变为一维列表的方法分析
2019/10/08 Python
win10环境下配置vscode python开发环境的教程详解
2019/10/16 Python
python操作cfg配置文件方式
2019/12/22 Python
python模拟点击网页按钮实现方法
2020/02/25 Python
Python求解排列中的逆序数个数实例
2020/05/03 Python
美国隐形眼镜销售网站:ContactsDirect
2017/10/28 全球购物
实习生的自我鉴定范文欣赏
2013/11/20 职场文书
工作失职检讨书范文
2014/01/16 职场文书
房地产开发项目建议书
2014/05/16 职场文书
社区安全生产月活动总结
2014/07/05 职场文书
无私奉献演讲稿
2014/09/04 职场文书
使用Navicat Premium工具将oracle数据库迁移到MySQL
2021/05/27 Oracle