This question教如何获取文档中的所有 TextNode,这也让我获取了 Javascript 文本。过滤掉所有 Javascript 代码节点的最佳方法是什么?
最佳答案
里面的文字<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);
<script> var str = "script here"; </script>
<p> text here </p>
关于javascript - 使用 TreeWalker 检索非 Javascript 文本节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37178091/