JavaScript中textContent、innerText与innerHTML的用法及区别详解
作者:小括号时间:2026-10-30 18:50:21浏览:234
本文详细解析JavaScript中textContent、innerText和innerHTML三个属性的用法与核心区别。重点对比它们在设置和获取文本内容时的行为差异,特别是innerHTML对HTML标签的解析能力。同时提供针对IE8等旧浏览器的兼容性处理代码,帮助开发者根据需求选择最合适的DOM操作方式。
一.textContent的用法
1.设置标签中的文本内容
<body>
<input type="button" value="按钮" id="btn">
<div id="dv">这是一个div</div>
<script>
document.getElementById("btn").onclick = function () {
document.getElementById("dv").textContent = "改变了";
};
</script>
</body>

2.获取标签中的文本内容
<body>
<input type="button" value="按钮" id="btn">
<div id="dv">这是一个div</div>
<script>
document.getElementById("btn").onclick = function () {
var text = document.getElementById("dv").textContent;
console.log(text);
};
</script>
</body>
二.innerText的用法
1.设置标签中的文本内容
<body>
<input type="button" value="按钮" id="btn">
<div id="dv">这是一个div</div>
<script>
document.getElementById("btn").onclick = function () {
document.getElementById("dv").innerText = "改变了";
};
</script>
</body>

2.获取标签中的文本内容
<body>
<input type="button" value="按钮" id="btn">
<div id="dv">这是一个div</div>
<script>
document.getElementById("btn").onclick = function () {
var text = document.getElementById("dv").innerText;
console.log(text);
};
</script>
</body>
三.innerHTML的用法 1.设置标签中的文本内容
1.设置标签中的文本内容
<body>
<input type="button" value="按钮" id="btn">
<div id="dv">这是一个div</div>
<script>
document.getElementById("btn").onclick = function () {
document.getElementById("dv").innerHTML = "改变了";
};
</script>
</body>

2.获取标签中的文本内容
<body>
<input type="button" value="按钮" id="btn">
<div id="dv">这是一个div</div>
<script>
document.getElementById("btn").onclick = function () {
var text = document.getElementById("dv").innerHTML;
console.log(text);
};
</script>
</body>
四.innerText和textContent的区别
- 设置标签中的文本内容,应该使用textContent属性,谷歌,火狐支持,IE8不支持
- 设置标签中的文本内容,应该使用innerText属性,谷歌,火狐,IE8都支持
- 如果这个属性在浏览器中不支持,那么这个属性的类型是undefined
- 判断这个属性的类型 是不是undefined,就知道浏览器是否支持
1.兼容代码设置任意的标签中间的任意文本内容
<script>
function setInnerText(element, text) {
//判断浏览器是否支持这个属性
if (typeof element.textContent == "undefined") {//不支持
element.innerText = text;
} else {//支持这个属性
element.textContent = text;
}
};
</script>2.兼容代码获取任意标签中间的文本内容
<script>
function getInnerText(element) {
if (typeof element.textContent == "undefined") {
return element.innerText;
} else {
return element.textContent;
}
};
</script>五.textContent、innerText和innerHTML的区别
textContent、innerText的效果是一样的,所以这里我只用innerText举例
1.设置标签中的文本内容
innerText的效果
<body>
<input type="button" value="按钮" id="btn">
<div id="dv">这是一个div</div>
<script>
function my$(id) {
return document.getElementById(id);
};
</script>
<script>
my$("btn").onclick = function () {
my$("dv").innerText = "哈哈";//设置文本
my$("dv").innerText = "<p>这是一个p</p>";//设置html标签的代码
};
</script>
</body>
innerHTML的效果
<body>
<input type="button" value="按钮" id="btn">
<div id="dv">这是一个div</div>
<script>
function my$(id) {
return document.getElementById(id);
};
</script>
<script>
my$("btn").onclick = function () {
my$("dv").innerHTML = "哈哈";
my$("dv").innerHTML = "<p>这是一个p</p>";//设置Html标签的
};
</script>
</body>
2.获取标签中的文本内容
innerText的效果
<body>
<input type="button" value="按钮" id="btn">
<div id="dv">
<p>这是一个p</p>
</div>
<script>
document.getElementById("btn").onclick = function () {
//可以获取标签中的文本内容
console.log(document.getElementById("dv").innerText);
};
</script>
</body>
innerHTML的效果

3.总结
- 如果使用innerText主要是设置文本的,设置标签内容,是没有标签效果的
- innerHTML是可以设置文本内容
- innerHTML主要的作用是在标签中设置新的html标签内容,是有标签效果的
- 想要设置标签内容,使用innerHTML,想要设置文本内容,innerText或者textContent,或者innerHTML,推荐用innerHTML
- innerText可以获取标签中间的文本内容,但是标签中如果还有标签,那么最里面的标签的文本内容也能获取.---获取不到标签的,文本可以获取
- innerHTML才是真正的获取标签中间的所有内容
本篇博客来自于传智播客视频教程的总结以及笔记的整理,仅供学习交流,切勿用于商业用途
作者最新文章
JS语法错误会阻止加载吗?区分SyntaxError与资源加载失败
2026-11-05 16:08:46
JavaScript常见SyntaxError语法错误排查与修复方法
2026-11-05 13:58:44
JS中slice、substring和substr截取字符串的区别
2026-11-05 13:43:47
JS 转 TS 手动迁移最佳实践:从配置 tsconfig 到消除 any 类型
2026-11-05 11:53:32
为什么JS数组push后得到的是数字而不是数组?
2026-11-05 09:59:18
相关标签:
