精通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变量声明实例分析
Apr 25 Javascript
Javascript实现div层渐隐效果的方法
May 30 Javascript
jQuery中使用animate自定义动画的方法
May 29 Javascript
浅谈JavaScript变量的自动转换和语句
Jun 12 Javascript
JavaScript之cookie技术详解
Nov 18 Javascript
详解Jquery的事件操作和文档操作
Dec 19 Javascript
整理关于Bootstrap导航的慕课笔记
Mar 29 Javascript
Cookies 和 Session的详解及区别
Apr 21 Javascript
vue.js todolist实现代码
Oct 29 Javascript
JS实现自定义弹窗功能
Aug 08 Javascript
vue 使某个组件不被 keep-alive 缓存的方法
Sep 21 Javascript
原生js拖拽功能制作滑动条实例代码
Feb 05 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根据身份证号码计算年龄的实例代码
2014/01/18 PHP
php生成zip文件类实例
2015/04/07 PHP
php判断两个日期之间相差多少个月份的方法
2015/06/18 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
2015/12/18 PHP
Yii列表定义与使用分页方法小结(3种方法)
2016/07/15 PHP
Laravel5.7 Eloquent ORM快速入门详解
2019/04/12 PHP
获取页面高度,窗口高度,滚动条高度等参数值getPageSize,getPageScroll
2006/09/22 Javascript
jMessageBox 基于jQuery的窗口插件
2009/12/09 Javascript
JavaScript中的6种运算符总结
2014/10/16 Javascript
wangEditor编辑器失去焦点后仍然可以在原位置插入图片分析
2015/05/06 Javascript
Javascript BOM学习小结(六)
2015/11/26 Javascript
理解javascript中的Function.prototype.bind的方法
2017/02/03 Javascript
vue路由对不同界面进行传参及跳转的总结
2019/04/20 Javascript
Vue中nprogress页面加载进度条的方法实现
2020/11/13 Javascript
Python标准库与第三方库详解
2014/07/22 Python
跟老齐学Python之有容乃大的list(2)
2014/09/15 Python
21行Python代码实现拼写检查器
2016/01/25 Python
python之文件的读写和文件目录以及文件夹的操作实现代码
2016/08/28 Python
python正则表达式的使用
2017/06/12 Python
Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】
2017/07/11 Python
利用Python+Java调用Shell脚本时的死锁陷阱详解
2018/01/24 Python
Python处理菜单消息操作示例【基于win32ui模块】
2018/05/09 Python
python中如何使用分步式进程计算详解
2019/03/22 Python
解决django 新增加用户信息出现错误的问题
2019/07/28 Python
Flask框架模板继承实现方法分析
2019/07/31 Python
Python图像处理库PIL的ImageEnhance模块使用介绍
2020/02/26 Python
Python 实现将某一列设置为str类型
2020/07/14 Python
CSS3区域模块region相关编写示例
2015/08/28 HTML / CSS
canvas小画板之平滑曲线的实现
2020/08/12 HTML / CSS
英国女性时尚品牌:Apricot
2018/12/04 全球购物
销售业务员岗位职责
2014/01/29 职场文书
财务人员求职自荐书范文
2014/02/10 职场文书
平安建设工作方案
2014/06/02 职场文书
单位在职证明书
2014/09/11 职场文书
社区干部培训心得体会
2016/01/06 职场文书
pandas中DataFrame数据合并连接(merge、join、concat)
2021/05/30 Python