zoukankan      html  css  js  c++  java
  • 精通JavaScript 纠正 cleanWhitespace 函数

    这个函数用在火狐(firefox)上面老是出错,今天仔细研究了下,改正了,希望别人不要遇到这样的问题

     1 function cleanWhitespace(element){
     2     //如果不提供参数,则处理整个HTML文档
     3     element = element || document;
     4     //使用第一个子节点作为开始指针
     5     var cur = element.firstChild;
     6     //临时变量用来保存当前节点的下个节点
     7     var tmp;
     8     //一直到没有子节点为止
     9     while (cur != null){
    10     //保存当前节点的下个节点
    11     tmp=cur.nextSibling
    12         //如果节点为文本节点,应且包含空格
    13         if ( cur.nodeType == 3 && ! /\S/.test(cur.nodeValue)){
    14             //删除这个文本节点
    15             element.removeChild( cur );            
    16         //否则,它就是一个元素        
    17         } else if (cur.nodeType == 1){
    18             //递归整个文档
    19             cleanWhitespace( cur );
    20         }
    21         cur = tmp;//遍历子节点
    22     }
    23 }
     

     还转一个可以用的

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

     http://www.cnblogs.com/oneroom

  • 相关阅读:
    为初学者解释下命名空间
    面向对象的思想
    SELECT查询结果集INSERT到数据表
    SQL Server事务
    Sql Server中的谓词和运算符
    SQL查询语句执行的逻辑顺序
    浏览器中的流
    CSS盒子模型
    ArcGIS提取水系并进行生态敏感性分析
    ENVI提取水系并进行生态敏感性分析
  • 原文地址:https://www.cnblogs.com/oneroom/p/cleanWhitespace.html
Copyright © 2011-2022 走看看