Js获取所有文本节点

<script type="text/javascript">
var contents = "";
function extractDocument(el) {
    
    var childNodes = el.childNodes;
    for (var i = 0; i < childNodes.length; i ++) {
        var c = childNodes[i];
        switch(c.nodeType) {
            case 1:
			   if(c.nodeName=="A")c;
                extractDocument(c);
                break;
            case 3:
                if (trim(c.nodeValue).length == 0) break;
                contents += " | " + c.nodeValue;
                break;
        }
    }
}
function trim(str) {
     return str.replace(/(^\s*)|(\s*$)/g, "");  
}
</script>
onload="extractDocument(document.body);alert(contents);
 
JavaScript 中,有多种方法可以获取文本节点: ### 使用 `firstChild` 属性 如果元素只有一个文本节点,可通过 `firstChild` 属性获取文本节点。 ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>获取文本节点</title> </head> <body> <div id="myDiv">这是一段文本</div> <script> const divElement = document.getElementById('myDiv'); const textNode = divElement.firstChild; console.log(textNode.nodeValue); </script> </body> </html> ``` ### 使用 `childNodes` 属性遍历子节点 `childNodes` 属性会返回一个包含元素所有子节点的集合,可遍历该集合找出文本节点。 ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>获取文本节点</title> </head> <body> <div id="myDiv"> 这是一段文本 <span>内部元素</span> </div> <script> const divElement = document.getElementById('myDiv'); const childNodes = divElement.childNodes; for (let i = 0; i < childNodes.length; i++) { if (childNodes[i].nodeType === Node.TEXT_NODE) { console.log(childNodes[i].nodeValue); } } </script> </body> </html> ``` ### 使用 `textContent` 属性获取文本内容 虽然 `textContent` 返回的是元素内的文本内容,并非严格意义上的文本节点,但可用来获取元素内的所有文本。 ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>获取文本节点</title> </head> <body> <div id="myDiv">这是一段文本</div> <script> const divElement = document.getElementById('myDiv'); const textContent = divElement.textContent; console.log(textContent); </script> </body> </html> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值