删除DOM树中的空白节点

来源:互联网 发布:淘宝口红试用报告 编辑:程序博客网 时间:2024/05/07 03:20

node.parentNode.removeChild(node)删除当前节点,DOM树会发生实时的变化,会影响后续节点的遍历。所以,若要删除某些特定的节点,可以先进行递归遍历,将这些节点存放到某一数组中,然后,再遍历去删除

1、遍历出所有的空白node存放于数组中  

function lookforSpaceTextNode(node,spaceNodes) {var nodeList = node.childNodes;for(var i=0; i<nodeList.length; i++) {var n = nodeList[i];if(n.nodeType == document.ELEMENT_NODE) {lookforSpaceTextNode(n,spaceNodes);}else if(n.nodeType == document.TEXT_NODE) {if(trim(n.nodeValue) == "") {spaceNodes[spaceNodes.length] = n;}}}}
2、删除

//需要页面加载完所有标签后window.onload = function() {var root=document.documentElement;var spaceNodes = [];lookforSpaceTextNode(root,spaceNodes);for(var i=0; i<spaceNodes.length; i++) {spaceNodes[i].parentNode.removeChild(spaceNodes[i]);}iterateElement(root,"");}


原创粉丝点击