◆
JavaScript innerHTML、textContent 与 innerText 区别
示例代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta
name="viewport"
content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0"
/>
</head>
<body>
<div id="test">
<div id="son_one" style="visibility: hidden">son_one</div>
<!--测试-->
<div class="my_test" style="display: none" id="son_two">
<p id="son_two_p">son_two</p>
</div>
<div class="my_test" style="color: blue!important;z-index: -1">
son_three
</div>
<div class="my_test" style="opacity: 0" id="son_four">
<p id="son_four_p">son_four</p>
</div>
<div class="my_test" style="opacity: 1">son_five</div>
<script>
var test = '这是测试';
</script>
<style>
* {
margin: 0;
padding: 0;
}
</style>
</div>
<script>
// var byId = document.getElementById('test').normalize()
var byId = document.getElementById('test');
// textContent 属性表示一个节点及其后代的文本内容
console.log('textContent:', byId.textContent);
console.log('document.textContent:', document.textContent);
// 获取整个文档的文本
// console.log('document.textContent:', document.documentElement.textContent)
console.log('innerText:', byId.innerText);
console.log('innerHTML:', byId.innerHTML);
// byId.innerHTML += `<div>11</div>`
byId.insertAdjacentHTML('beforeend', `<div>11</div>`);
byId.insertAdjacentText('beforeend', `<div>22</div>`);
</script>
</body>
</html>

textContent
Node接口的textContent属性表示一个节点及其后代的文本内容。它不会把给定的内容解析为HTML,它仅仅是将原始文本插入给定的位置。textContent会获取所有元素的内容,包括<script>和<style>元素
innerText
innerText只展示给人看的元素。对于display: none和visibility: hidden的元素不展示- 由于
innerText受CSS样式的影响,它会触发回流(reflow)去确保是最新的计算样式。(回流在计算上可能会非常昂贵,因此应尽可能避免。)
innerHTML
Element.innerHTML属性设置或获取HTML语法表示的元素的后代。会获取所有元素的内容,包括<script>和<style>元素
insertAdjacentHTML / insertAdjacentText
- insertAdjacentHTML:将指定的文本解析为
Element元素,并将结果节点插入到DOM树中的指定位置。 - insertAdjacentText:方法将一个给定的文本节点插入在相对于被调用的元素给定的位置。
- 它不会重新解析它正在使用的元素,因此它不会破坏元素内的现有元素。这避免了额外的序列化步骤,使其比直接使用
innerHTML操作更快。 - 语法
element.insertAdjacentHTML(position, text);position: 一个DOMString,表示插入内容相对于元素的位置,并且必须是以下字符串之一:beforebegin:元素自身的前面。afterbegin:插入元素内部的第一个子节点之前。beforeend:插入元素内部的最后一个子节点之后。afterend:元素自身的后面。
text: 是要被解析为HTML或XML元素,并插入到DOM树中的DOMString。

还没有留言,来发表第一条吧~