精通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的Pager分页器实现代码
Jul 17 Javascript
JavaScript去掉空格的方法集合
Dec 28 Javascript
JS控制图片等比例缩放的示例代码
Dec 24 Javascript
JSONP获取Twitter和Facebook文章数的具体步骤
Feb 24 Javascript
jquery代码实现多选、不同分享功能
Jul 31 Javascript
web 前端常用组件之Layer弹出层组件
Sep 22 Javascript
js闭包用法实例详解
Dec 13 Javascript
js实现图片切换(动画版)
Dec 25 Javascript
bootstrap table分页模板和获取表中的ID方法
Jan 10 Javascript
easyUI下拉列表点击事件使用方法
May 18 Javascript
vue axios登录请求拦截器
Apr 02 Javascript
JavaScript使用canvas绘制坐标和线
Apr 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
PHPlet在Windows下的安装
2006/10/09 PHP
成为好程序员必须避免的5个坏习惯
2014/07/04 PHP
PHP判断网络文件是否存在的方法
2015/03/12 PHP
php获取今日开始时间和结束时间的方法
2017/02/27 PHP
PHP实现时间日期友好显示实现代码
2019/09/08 PHP
在laravel中实现将查询的对象转换为多维数组的函数
2019/10/21 PHP
TNC vs IO BO3 第一场2.13
2021/03/10 DOTA
可以文本显示的公告栏的js代码
2007/03/11 Javascript
js类中的公有变量和私有变量
2008/07/24 Javascript
js实现的切换面板实例代码
2013/06/17 Javascript
用javascript添加控件自定义属性解析
2013/11/25 Javascript
javascript获取元素偏移量的方法有哪些
2014/06/24 Javascript
JS实现slide文字框缩放伸展效果代码
2015/11/05 Javascript
jQuery 中的 DOM 操作
2016/04/26 Javascript
vue从使用到源码实现教程详解
2016/09/19 Javascript
jQueryUI Sortable 应用Demo(分享)
2017/09/07 jQuery
jquery select插件异步实时搜索实例代码
2017/10/20 jQuery
JavaScript的Object.defineProperty详解
2018/07/09 Javascript
详解基于Vue,Nginx的前后端不分离部署教程
2018/12/04 Javascript
js控制随机数生成概率代码实例
2019/03/21 Javascript
手把手15分钟搭一个企业级脚手架
2019/09/16 Javascript
Python使用matplotlib绘制动画的方法
2015/05/20 Python
python3 判断列表是一个空列表的方法
2018/05/04 Python
mac安装scrapy并创建项目的实例讲解
2018/06/13 Python
Numpy对数组的操作:创建、变形(升降维等)、计算、取值、复制、分割、合并
2019/08/28 Python
python 哈希表实现简单python字典代码实例
2019/09/27 Python
10行Python代码计算汽车数量的实现方法
2019/10/23 Python
Python龙贝格法求积分实例
2020/02/29 Python
scrapy-splash简单使用详解
2021/02/21 Python
 Alo Yoga官网:购买瑜伽服装
2018/06/17 全球购物
软件测试面试题
2014/01/05 面试题
大学生精神文明先进个人事迹材料
2014/05/02 职场文书
领导干部保密承诺书
2014/08/30 职场文书
教师查摆问题及整改措施
2014/10/11 职场文书
机械生产实习心得体会
2016/01/22 职场文书
python3读取文件指定行的三种方法
2021/05/24 Python