精通JavaScript 纠正 cleanWhitespace函数

代码如下:

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)}
}
}

(0)

相关推荐

  • 精通Javascript+jQuery 视频教程 在线观看

    JavaScript/CSS/DOM基础 第0课 - 内容概述 第1课 - JavaScript背景知识 第2课 - JavaScript基础 第3课 - CSS基础 第4课 - CSS进阶 第5课 - DOM模型 JavaScript开发进阶 第6课 - JavaScript事件 第7课 - 表格与表单 第8课 - Javascript调试与优化 第9课 - Ajax jQuery应用 第10课 - jQuery基础 第11课 - jQuery控制页面 第12课 - jQuery动画特效 第1

  • 精通Javascript系列之Javascript基础篇

    javascrpit的基本概念: 1)区分大小写 与JAVA一样,JS中的变量,函数,运算符以及其他的一切东西都是区分大小写的,例如:变量MyTag与MYTAG是两个不同的变量. 2)弱类型变更.所以谓弱类型变量指的是JS中变量无特定类型,不像C那样.定义变量只用"var",并可以将其初始化为任意的值,这样就可以随便的改变变量所存储数据的类型,不般不推荐: 例:var age=25; var myName="zhangsan"; 3) 每行结尾的分号可有可无: 例:

  • 精通Javascript系列之数值计算

    更直观一点: --------------------- 例:var a=32.6; var b=67; var c=9e5; --------------------- 对于数值类型,如果希望转换为科学计数法,可以采用toExponential()方法,该方法接受一个参数,表示要输出小数倍数: --------------------- 例: var a=78.9; alert(a.toExponential(1)); --------------------- js 中对数值的格式化问题 对

  • 精通Javascript系列之数据类型 字符串

    js一共有9种数据类型,分别是:未定义(undefined).空(null).布尔型(boolean).字符串(string).数值(number).对象(object).引用(reference).列表(completion).其中后3种仅仅作为JS运行中间结果的数据类型,因此不能在代码中使用,下面先讲一下字符串String: 字符串由零个或者多个字符构成.字符可以包括字母.数字.标点符号和空格.字 符串必须放在单引号或双引号内: -------------------------------

  • javascript与CSS复习(《精通javascript》)

    如:elem.style.height 或者 elem.style.height = '100px', 这里要注意的是设置任何几何属性必须明确尺寸单位(如px),同时任何几何属性返回的是表示样式的字符串而非数值(如'100px'而非100).另外像elem.style.height这样的操作,也能获取元素style属性中设置的样式值,如果你把样式统一放在css文件中,上述方法只会返回一个空串.为了获取元素真实.最终的样式,书中给出了一个函数 复制代码 代码如下: //get a style pr

  • 精通JavaScript 纠正 cleanWhitespace函数

    复制代码 代码如下: function cleanWhitespace(element){ //如果不提供参数,则处理整个HTML文档 element = element || document; //使用第一个子节点作为开始指针 var cur = element.firstChild; //临时变量用来保存当前节点的下个节点 var tmp; //一直到没有子节点为止 while (cur != null){ //保存当前节点的下个节点 tmp=cur.nextSibling //如果节点为

  • JavaScript中的函数模式详解

    JavaScript设计模式的作用是提高代码的重用性,可读性,使代码更容易的维护和扩展 在javascript中,函数是一类对象,这表示他可以作为参数传递给其他函数:此外,函数还可以提供作用域. 创建函数的语法 命名函数表达式 复制代码 代码如下: //命名函数表达式 var add = function add(a,b){     return a+b; }; 函数表达式 复制代码 代码如下: //又名匿名函数 var add = function(a,b){     return a+b;

  • 深入浅析javascript立即执行函数

    javascript和其他编程语言相比比较随意,所以javascript代码中充满各种奇葩的写法,有时雾里看花; 当然,能理解各型各色的写法也是对javascript语言特性更进一步的深入理解.  JavaScript 函数语法 函数就是包裹在花括号中的代码块,前面使用了关键词 function: function functionname() { 这里是要执行的代码 } 当调用该函数时,会执行函数内的代码. 可以在某事件发生时直接调用函数(比如当用户点击按钮时),并且可由 JavaScript

  • javaScript中push函数用法实例分析

    本文实例讲述了javaScript中push函数用法.分享给大家供大家参考.具体分析如下: javaScript 中的 push 方法,将新元素添加到一个数组中,并返回数组的新长度值. arrayObj.push([item1   [item2   [.   .   .   [itemN   ]]]]) 参数 arrayObj,必选项.一个   Array   对象. item,   item2,.   .   .   itemN, 可选项.该   Array   的新元素. 说明 push 

  • 枚举JavaScript对象的函数

    From: JavaEye.com 枚举JavaScript对象的函数: function iterator(obj) {  for (var property in obj) {  document.writeln("<p>" + property + " : " + obj[property] + "</p>");  } } 一个简单示例(test.js): function Employee () {   this.

  • JavaScript中exec函数用法实例分析

    本文实例讲述了JavaScript中exec函数用法.分享给大家供大家参考.具体如下: javaScript 中的 exec 函数,用正则表达式模式在字符串中运行查找,并返回包含该查找结果的一个数组. rgExp.exec(str) 参数: rgExp   必选项.包含正则表达式模式和可用标志的正则表达式对象. str   必选项.要在其中执行查找的 String 对象或字符串文字. 说明: 如果 exec 方法没有找到匹配,则它返回 null.如果它找到匹配,则 exec 方法返回一个数组,并

  • javascript中动态函数用法实例分析

    本文实例讲述了javascript中动态函数用法.分享给大家供大家参考.具体分析如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>动态函数</title> <script

  • JavaScript常用验证函数实例汇总

    本文实例汇总了JavaScript常用验证函数.分享给大家供大家参考.具体汇总如下: 一.字符串类验证 1. 长度限制 复制代码 代码如下: <script> function test() { if(document.a.b.value.length>50) { alert("不能超过50个字符!"); document.a.b.focus(); return false; } } </script> <form name=a onsubmit=&

  • javascript带回调函数的异步脚本载入方法实例分析

    本文实例讲述了javascript带回调函数的异步脚本载入方法.分享给大家供大家参考.具体实现方法如下: var Loader = function () { } Loader.prototype = { require: function (scripts, callback) { this.loadCount = 0; this.totalRequired = scripts.length; this.callback = callback; for (var i = 0; i < scri

  • javascript中eval函数用法分析

    本文实例分析了javascript中eval函数用法.分享给大家供大家参考.具体分析如下: eval()只有一个参数,如果传入的参数不是字符串,则直接返回这个参数.否则会将字符串当成js代码进行编译,如果编译失败则抛出语法错误(SyntaxError)异常.如果编译成功则开始执行这段代码,并返回字符串中的最后一个表达式或语句的值:如果最后一个表达式或语句没有值,则最终返回undefined.如果字符串抛出异常,则该异常将把该调用传递给eval(); eval()最为重要的是,它使用了调用它的变量

随机推荐