js中innerHTML、 nodeValue与 textContent

文章类型:Javascript

发布者:hp

发布时间:2023-04-20

一:区别

1:innerHTML

属性设置或返回表格行的开始和结束标签之间的 HTML,可获取或设置指定元素标签内的 html内容,从该元素标签的起始位置到终止位置的全部内容(包含html标签)

 <p id="prag" title="text">
一段文本
<span>一句话</span>
</p>
var p = document.getElementById('prag')
console.log('innerHTML', p.innerHTML) // \n 一段文本\n <span id="sp">一句话</span>\n

2:nodeValue

属性设置或返回指定节点的节点值。nodeValue 属性的替代选择是 textContent 属性。nodeValue只适用于文本节点和属性节点,对标签节点不适用,返回null

console.log('nodeValue', p.nodeValue) // null

3:textContent

属性设置或者返回指定节点的文本内容。如果设置了textContent属性,任何子节点都会被移除,然后被指定的字符串的文本节点替换

 console.log('textContent', p.textContent) // \n    一段文本\n    一句话\n  

二:总结

1:Element.innerHTML, 读写元素的 HTML 内容

2:Text.nodeValue, 读写文本节点内容

3:Node.textContent, 读写节点的文本内容,连接在一起返回