JavaScript篇之DOM属性对象

来源:互联网 发布:网络设计好学吗 编辑:程序博客网 时间:2024/06/09 18:44

如何过滤空白节点?

方法一

原理:将满足条件的节点添加到数组里

    function fileterSpaceNode(node)     {            var ret = [] ;     //新数组            var pattern = /^\s+$/ ;   //为了优化性能,将模式字符串保存在变量中            for( var i = 0; i < node.childNodes.length )             {                      var node_child = node.childNodes[i] ;                    //如果匹配到空的文本节点,就不添加数组                    if( node_child.nodeType == 3 && pattern.test(node_child.nodeValue) )                         {                                 //把每次的元素节点,添加到数组里                                ret.push( node_child ) ;                         }            }            return ret ;   //返回非空白节点的节点数组    }

方法二

原理:将匹配到的空白节点从nodesList中删除

 function cleanBlank(element)  {                    var pattern = /\S/ ; //同理,注意这里的模式字符串的写法,对结果取反,表达的含义相同            for ( var j = 0; j < element.childNodes.length; j++ )             {                    var elem_child = element.childNodes[j];                //如果匹配到空白节点就将其删除                if(elem_child.nodeType == 3 &&  !pattern.test(elem_child.nodeValue))                 {                             element.removeChild(elem_child);                }            }    }
0 0