为什么更改innerText值也会改变innerHTML?

时间:2014-02-24 21:28:03

标签: javascript asp.net .net innerhtml innertext

我有一个asp.net代码,可以创建一个按钮,如下所示:

<a href="#" id="button1" title="Maximize" onclick="function1('span1')" class="button"><span id="span1" class="iconMaximizeLightText">Maximize</span></a>

现在在javascript文件中我在function1函数中执行以下操作:

document.getElementById("button1").innerText = "Minimize";
document.getElementById("button1").value = "Minimize";
document.getElementById("button1").className = "iconMinimizeLightText";

我注意到的是在行之前:“document.getElementById(”button1“)。innerText =”Minimize“;”执行“document.getElementById(”button1“)中的值.innerHTML”是

document.getElementById("button1").innerHTML = "<span id=span1 class=iconMaximizeLightText>Maximize</span>"

但在执行该行后,“document.getElementById(”button1“)中的值.innerHTML”是

document.getElementById("button1").innerHTML = "Minimize"

为什么innerHTML值会改变,因为我只更改了innerText值?

提前致谢。

P.S。对不起,这可能是一个愚蠢的问题,但我几个星期后才开始学习这门语言。

1 个答案:

答案 0 :(得分:0)

innerTextinnerHTML都设置了元素的HTML。不同之处在于innerText - 顺便说一下,您可能希望使用textContent代替 - 将转义字符串,以便您无法在其中嵌入HTML内容。

例如,如果您这样做:

var div = document.createElement('DIV');
div.innerText = '<span>Hello</span>';
document.body.appendChild(div);

然后你实际上会在屏幕上看到字符串"<span>Hello</span>",而不是"Hello"(在一个范围内)。

innerText还有其他一些细微之处,在上面引用的MDN文章中有所涉及。