精通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 相关文章推荐
Javascript调试工具(下载)
Jan 09 Javascript
javascript的onchange事件与jQuery的change()方法比较
Sep 28 Javascript
基于node.js的快速开发透明代理
Dec 25 Javascript
javascript设计模式 接口介绍
Jul 24 Javascript
js出生日期 年月日级联菜单示例代码
Jan 10 Javascript
BootStrap 图标icon符号图标glyphicons不正常显示的快速解决办法
Dec 08 Javascript
原生JS下拉加载插件分享
Dec 26 Javascript
微信小程序 ES6Promise.all批量上传文件实现代码
Apr 14 Javascript
ES6中箭头函数的定义与调用方式详解
Jun 02 Javascript
Bootstrap table使用方法记录
Aug 23 Javascript
详解Vue 全局引入bass.scss 处理方案
Mar 26 Javascript
vue 组件之间事件触发($emit)与event Bus($on)的用法说明
Jul 28 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
ueditor 1.2.6 使用方法说明
2013/07/24 PHP
体育彩票排列三组选三算法分享
2014/03/07 PHP
php格式输出文件var_export函数实例
2014/11/15 PHP
PHP中的闭包(匿名函数)浅析
2015/02/07 PHP
thinkPHP模型初始化实例分析
2015/12/03 PHP
学习php设计模式 php实现门面模式(Facade)
2015/12/07 PHP
php自定义函数br2nl实现将html中br换行符转换为文本输入中换行符的方法【与函数nl2br功能相反】
2017/02/17 PHP
jquery 多级下拉菜单核心代码
2010/05/21 Javascript
$.format,jquery.format 使用说明
2011/07/13 Javascript
jQuery数据显示插件整合实现代码
2011/10/24 Javascript
JavaScript之自定义类型
2012/05/04 Javascript
基于Jquery实现仿百度百科右侧导航代码附源码下载
2015/11/27 Javascript
Angularjs 滚动加载更多数据
2016/03/17 Javascript
JavaScript之WebSocket技术详解
2016/11/18 Javascript
Java与JavaScript中判断两字符串是否相等的区别
2017/03/13 Javascript
Node.js中使用mongoose操作mongodb数据库的方法
2017/09/12 Javascript
JS获取并处理php数组的方法实例分析
2018/09/04 Javascript
简单说说angular.json文件的使用
2018/10/29 Javascript
Bootstarp在pycharm中的安装及简单的使用方法
2019/04/19 Javascript
Vue 防止短时间内连续点击后多次触发请求的操作
2020/11/11 Javascript
php使用递归与迭代实现快速排序示例
2014/01/23 Python
跟老齐学Python之print详解
2014/09/28 Python
python模拟登陆,用session维持回话的实例
2018/12/27 Python
Python图像处理之图像的读取、显示与保存操作【测试可用】
2019/01/04 Python
全面了解django的缓存机制及使用方法
2019/07/22 Python
Python编程学习之如何判断3个数的大小
2019/08/07 Python
Python魔法方法 容器部方法详解
2020/01/02 Python
Python for循环搭配else常见问题解决
2020/02/11 Python
Python如何测试stdout输出
2020/08/10 Python
基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码
2021/02/18 Python
SQL Server面试题
2016/10/17 面试题
小学家长学校培训材料
2014/08/24 职场文书
幼儿园园长新年寄语2015
2014/12/08 职场文书
大学生自我鉴定怎么写
2019/05/07 职场文书
工作报告范文
2019/06/20 职场文书
来探秘“德国中小企业”的成功之道
2019/07/26 职场文书