[英]Changing the text of a Label in javascript doesn't work
我试图在aspx页面中使用像这样的javascript来更改标签的文本
document.getElementById('DetailSection_EssLabel1').Text = "Revised Date";
但是当我通过使用F12按钮进入IE的调试模式时,这就是我在该字段中看到的内容,
<SPAN class=FormFieldHeader id=DetailSection_EssLabel1 Text="Revised Date">Assigned Completion Date</SPAN>
尽管文本已更改为“修订日期”,但仍在前端显示“分配的完成日期”。 有人可以告诉我我想念的东西吗? 谢谢
如果要设置标签的文本,则最好使用textContent
属性,如下所示:
document.getElementById('DetailSection_EssLabel1').textContent = "Revised Date";
innerText
不是标准属性,您肯定会在FireFox中遇到问题
本机Javascript对象没有text
属性,但是它们具有innerHTML
和innerText
属性。 要更改元素的文本,可以使用以下任一方法:
document.getElementById('DetailSection_EssLabel1').innerHTML = "Revised Date";
。
或document.getElementById('DetailSection_EssLabel1').innerText = "Revised Date";
。
使用内文
document.getElementById('DetailSection_EssLabel1').innerText="Revised Date";
如果包含IE 8和更早的版本,则innerText
和textContent
都不与跨浏览器兼容。
使用jQuery text
方法通常是简单的按钮。
如果没有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攻击(如果包括用户提供的文本)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.