我试图在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>
虽然文本已更改为修订日期,但它仍在前端显示已分配的完成日期。有人能告诉我我错过了什么。感谢
答案 0 :(得分:1)
如果要设置标签的文本,最好使用textContent
属性,如下所示:
document.getElementById('DetailSection_EssLabel1').textContent = "Revised Date";
innerText
不是标准属性,你肯定会在FireFox中遇到问题
答案 1 :(得分:0)
原生Javascript对象没有text
属性,但它们具有innerHTML
和innerText
属性。要更改元素的文本,您可以使用:
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及更早版本,innerText
和textContent
都不能跨浏览器兼容。
使用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攻击(如果包含用户提供的文本)。