lve*_*lla 1 javascript dom dhtml textnode
这个问题教会如何获取文档中的所有TextNode,这也是我的Javascript文本.过滤掉所有Javascript代码节点的最佳方法是什么?
<script>标签内的文字只有一个共同点:它们的父<script>元素是一个元素.
if (node.parentNode.nodeName !== 'SCRIPT')
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用过滤器:
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);Run Code Online (Sandbox Code Playgroud)
<script> var str = "script here"; </script>
<p> text here </p>Run Code Online (Sandbox Code Playgroud)