[英]How can I get array of #text nodes of the html tree
您可以递归地扫描节点并将文本节点推送到数组中。
const textNodes = [] function pushTextNode(node) { if (node.nodeName === "#text") { const nodeVal = node.nodeValue.trim(); if (nodeVal) { textNodes.push(nodeVal); } return; } node.childNodes.forEach((childNode) => { pushTextNode(childNode) }); } pushTextNode(document.querySelector("#root")); console.log(textNodes);
<div id="root"> <span> 0 <b> 12<u>3</u> </b> <u> 4<b>5</b> </u> <b>67</b>8<a href="#">9</a> </span> </div>
您需要指定第一个父标签并使用 innerText 属性。
<script>
var text = document.getElementsByTagName("body")[0].innerText;
console.log(text.replace(/(\r\n|\n|\r|\t|\s)/gm, ''));
</script>
或者如果你想使用 jquery ,你可以这样做。
console.log($("body span").text().replace(/(\r\n|\n|\r|\t)/gm, ''));
//find the textnode like this//
const textNodes=document.querySelector("content");
//[put on a variable]//
//using this statement //
Array.from(textNodes).map((content)=>{
//now add eventlistener//
content.addEventListener("//event type//",functionHandler);
});
function functionHandler(e){
//do anything what you need//
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.