This question教授如何在文档中获取所有TextNode,这也是我的Javascript文本。过滤掉所有Javascript代码节点的最佳方法是什么?
答案 0 :(得分:8)
<script>
标记内的文字只有一个共同点:它们的父级是<script>
元素。
if (node.parentNode.nodeName !== 'SCRIPT')
另一种方法是使用过滤器:
var rejectScriptTextFilter = {
acceptNode: function(node) {
if (node.parentNode.nodeName !== 'SCRIPT') {
return NodeFilter.FILTER_ACCEPT;
}
}
};
var walker = document.createTreeWalker(
document.body,
NodeFilter.SHOW_TEXT,
rejectScriptTextFilter,
false
);
var node;
var textNodes = [];
while(node = walker.nextNode()) {
textNodes.push(node.nodeValue);
}
console.log(textNodes);
&#13;
<script> var str = "script here"; </script>
<p> text here </p>
&#13;
答案 1 :(得分:0)
您可以克隆原始document
,删除克隆<script>
上的document
元素,然后迭代克隆的document