精通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 相关文章推荐
JS实现3D图片旋转展示效果代码
Sep 22 Javascript
jQuery实现图片上传和裁剪插件Croppie
Nov 29 Javascript
javascript日期格式化方法小结
Dec 17 Javascript
JavaScript 计算笛卡尔积实例详解
Dec 02 Javascript
教大家轻松制作Bootstrap漂亮表格(table)
Dec 13 Javascript
vue.js从安装到搭建过程详解
Mar 17 Javascript
ComboBox(下拉列表框)通过url加载调用远程数据的方法
Aug 06 Javascript
微信小程序网络封装(简单高效)
Aug 06 Javascript
vue 实现左右拖拽元素并且不超过他的父元素的宽度
Nov 30 Javascript
vue实现微信分享链接添加动态参数的方法
Apr 29 Javascript
解决vuex数据异步造成初始化的时候没值报错问题
Nov 13 Javascript
微信小程序实现打卡签到页面
Sep 21 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
【COS正片】蕾姆睡衣cos,纯洁可爱被治愈了 cn名濑弥七
2020/03/02 日漫
分享PHP入门的学习方法
2007/01/02 PHP
PHP中基本符号及使用方法
2010/03/23 PHP
php中fsockopen用法实例
2015/01/05 PHP
js中的escape及unescape函数的php实现代码
2007/09/04 Javascript
JavaScript高级程序设计 学习笔记 js高级技巧
2011/09/20 Javascript
js中生成map对象的方法
2014/01/09 Javascript
使用JavaScript脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法
2015/09/16 Javascript
JS实现超简洁网页title标题跑动闪烁提示效果代码
2015/10/23 Javascript
使用jQuery获取data-的自定义属性
2015/11/10 Javascript
input 禁止输入特殊字符的四种实现方式
2016/08/24 Javascript
jQuery插件HighCharts绘制2D半圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
整理关于Bootstrap排版的慕课笔记
2017/03/29 Javascript
前端构建工具之gulp的语法教程
2017/06/12 Javascript
Angular4 Select选择改变事件的方法
2018/10/09 Javascript
基于node.js实现爬虫的讲解
2019/02/18 Javascript
vue中组件通信的八种方式(值得收藏!)
2019/08/09 Javascript
Vue+scss白天和夜间模式切换功能的实现方法
2021/01/05 Vue.js
Vite和Vue CLI的优劣
2021/01/30 Vue.js
pycharm 使用心得(九)解决No Python interpreter selected的问题
2014/06/06 Python
python基于multiprocessing的多进程创建方法
2015/06/04 Python
python安装模块如何通过setup.py安装(超简单)
2018/05/05 Python
Python使用APScheduler实现定时任务过程解析
2019/09/11 Python
win10从零安装配置pytorch全过程图文详解
2020/05/08 Python
加拿大最大的书店:Indigo
2017/01/01 全球购物
CHRONEXT英国:您的首选奢华腕表目的地
2020/03/30 全球购物
心理学专业大学生职业生涯规划范文
2014/02/19 职场文书
关于中国梦的演讲稿
2014/04/23 职场文书
精神文明建设先进工作者事迹材料
2014/05/02 职场文书
公务员党员评议表自我鉴定
2014/09/14 职场文书
2015年安全教育月活动总结
2015/03/26 职场文书
幼儿园庆元旦主持词
2015/07/06 职场文书
驻村工作简报
2015/07/20 职场文书
关于JavaScript回调函数的深入理解
2021/06/27 Javascript
如何用vue实现网页截图你知道吗
2021/11/17 Vue.js
python中对列表的删除和添加方法详解
2022/02/24 Python