精通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 动态table添加colspan\rowspan 参数的方法
Jul 25 Javascript
js实现图片轮换效果代码
Apr 16 Javascript
利用jquery写的左右轮播图特效
Feb 12 Javascript
基于jquery实现的图片在各种分辨率下未知的容器内上下左右居中
May 11 Javascript
jQuery EasyUI Dialog拖不下来如何解决
Sep 28 Javascript
AngularJS 防止页面闪烁的方法
Mar 09 Javascript
基于element-ui的rules中正则表达式
Sep 04 Javascript
微信小程序使用gitee进行版本管理
Sep 20 Javascript
ES6中字符串的使用方法扩展
Jun 04 Javascript
javascript 对象 与 prototype 原型用法实例分析
Nov 11 Javascript
JS实现网页时钟特效
Mar 25 Javascript
Vue 简单实现前端权限控制的示例
Dec 25 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
php下mysql数据库操作类(改自discuz)
2010/07/03 PHP
一个简单的php路由类
2016/05/29 PHP
php版微信发红包接口用法示例
2016/09/23 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
2018/03/02 PHP
php设计模式之工厂模式用法经典实例分析
2019/09/20 PHP
js 判断 enter 事件
2009/02/12 Javascript
javascript中动态加载js文件多种解决办法总结
2013/11/15 Javascript
IE6下javasc#ipt:void(0) 无效的解决方法
2013/12/23 Javascript
jQuery结合CSS制作漂亮的select下拉菜单
2015/05/03 Javascript
javascript实现动态统计图开发实例
2015/11/21 Javascript
JavaScript学习总结之JS、AJAX应用
2016/01/29 Javascript
JS中绑定事件顺序(事件冒泡与事件捕获区别)
2017/01/24 Javascript
jquery设置css样式的多种方法(总结)
2017/02/21 Javascript
微信小程序网络请求的封装与填坑之路
2017/04/01 Javascript
将angular.js项目整合到.net mvc中的方法详解
2017/06/29 Javascript
vue移动端监听滚动条高度的实现方法
2018/09/03 Javascript
jQuery插件实现的日历功能示例【附源码下载】
2018/09/07 jQuery
angular6根据environments配置文件更改开发所需要的环境的方法
2019/03/06 Javascript
Vue中Table组件Select的勾选和取消勾选事件详解
2019/03/19 Javascript
vue多个元素的样式选择器问题
2019/11/29 Javascript
详解javascript中var与ES6规范中let、const区别与用法
2020/01/11 Javascript
el-table树形表格表单验证(列表生成序号)
2020/05/31 Javascript
python实现多线程暴力破解登陆路由器功能代码分享
2015/01/04 Python
详解Python中for循环的使用方法
2015/05/14 Python
python绘制铅球的运行轨迹代码分享
2017/11/14 Python
Windows下的Jupyter Notebook 安装与自定义启动(图文详解)
2018/02/21 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
2018/05/25 Python
Python中按键来获取指定的值
2019/03/02 Python
python GUI计算器的实现
2020/10/09 Python
PyCharm2020.3.2安装超详细教程
2021/02/08 Python
思想政治教育专业个人求职信范文
2013/12/20 职场文书
医药个人求职信范文
2014/01/29 职场文书
教学改革实施方案
2014/03/31 职场文书
教师求职自荐信范文
2015/03/04 职场文书
门球健将观后感
2015/06/16 职场文书
Win11 22H2 2022怎么更新? 获得Win1122H22022版本升级技巧
2022/09/23 数码科技