繁体   English   中英

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

[英]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属性,但是它们具有innerHTMLinnerText属性。 要更改元素的文本,可以使用以下任一方法:

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

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

使用内文

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

如果包含IE 8和更早的版本,则innerTexttextContent都不与跨浏览器兼容。

使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM