在javascript中更改标签的文本并不起作用

时间:2016-02-17 20:10:23

标签: javascript asp.net

我试图在aspx页面中使用像这样的javascript更改Label的文本

document.getElementById('DetailSection_EssLabel1').Text = "Revised Date";

但是当我使用F12按钮进入IE的调试模式时,这就是我在该领域所看到的,

<SPAN class=FormFieldHeader        id=DetailSection_EssLabel1           Text="Revised Date">Assigned Completion Date</SPAN>

虽然文本已更改为修订日期,但它仍在前端显示已分配的完成日期。有人能告诉我我错过了什么。感谢

4 个答案:

答案 0 :(得分:1)

如果要设置标签的文本,最好使用textContent属性,如下所示:

document.getElementById('DetailSection_EssLabel1').textContent = "Revised Date";

innerText不是标准属性,你肯定会在FireFox中遇到问题

答案 1 :(得分:0)

原生Javascript对象没有text属性,但它们具有innerHTMLinnerText属性。要更改元素的文本,您可以使用:

document.getElementById('DetailSection_EssLabel1').innerHTML = "Revised Date";

document.getElementById('DetailSection_EssLabel1').innerText = "Revised Date";

答案 2 :(得分:0)

使用innertext

document.getElementById('DetailSection_EssLabel1').innerText="Revised Date";

答案 3 :(得分:0)

如果您包含IE 8及更早版本,innerTexttextContent都不能跨浏览器兼容。

使用the jQuery text method通常是简单的按钮。

如果jQuery不是一个选项,那么与纯DOM最兼容的方式是使用文本节点,例如:

var outputDiv = document.getElementById('DetailSection_EssLabel1');
var childNodes = outputDiv.childNodes;
// nodeType == 3 is a text node
if (!(childNodes.length == 1 && childNodes[0].nodeType == 3)) {
    outputDiv.innerHTML = ''; // one way to clear any existing content
    outputDiv.appendChild(document.createTextNode(''));
}
outputDiv.childNodes[0].nodeValue = 'Revised Text';

小提琴:https://jsfiddle.net/4m0wpjdo/1/

编辑:我还想提一下,使用innerHTML来注入文本真的不是一个好主意。使用这种方法时,忘记逃避特殊字符太容易了。这样可以最大限度地显示文本的错误显示和最坏的XSS攻击(如果包含用户提供的文本)。