javascript抓取节点时跳过文本节点
来源:原创
时间:2015-08-25
作者:脚本小站
分类:JS/JQuery
各个浏览器对js支持不同,抓取节点时有些浏览器会把文本当成节点,下面的这些函数是用来跳过文本节点的抓取,只抓取标签元素。
/* * 返回下一个兄弟“元素”节点(跳过文本节点),为了应付非ie浏览器将换行符和空格视为文本节点的情况。 */ function nextElement(node){ for(var nextNode = node.nextSibling;nextNode;nextNode = nextNode.nextSibling){ if(nextNode.nodeType == 1){ return nextNode; } } return null; } /* * 返回上一个兄弟“元素”节点(跳过文本节点),为了应付非ie浏览器将换行符和空格视为文本节点的情况。 */ function previousElement(node){ for(var previousNode = node.previousSibling;previousNode;previousNode = previousNode.previousSibling){ if(previousNode.nodeType == 1){ return previousNode; } } return null; } /* * 返回指定元素的最后一个非文本孩子节点,为了应付非ie浏览器将换行符和空格视为文本节点的情况。 */ function lastElement(node){ for(var lastNode = node.lastChild;lastNode;lastNode = lastNode.previousSibling){ if(lastNode.nodeType == 1){ return lastNode; } } return null; } /* * 返回指定元素的第一个非文本孩子节点,为了应付非ie浏览器将换行符和空格视为文本节点的情况。 */ function firstElement(node){ for(var firstNode = node.firstChild;firstNode;firstNode = firstNode.nextSibling){ if(firstNode.nodeType == 1){ return firstNode; } } return null; }