2016-02-17 37 views
0

我試圖使用javascript這樣在aspx頁面更改在javascript標籤的文本不工作

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

要更改標籤的文本,但,當我在IE調試模式通過使用F12鍵,這是我看到的領域,

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

雖然文本更改爲改版日期,它仍然顯示在前端分配的完成日期。有人能告訴我我錯過了什麼嗎?謝謝

回答

0

innerTexttextContent都不是跨瀏覽器兼容的,如果你包含IE 8歲以上。

使用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攻擊(如果包含用戶提供的文本)。

+0

答:這是唯一適用於我的解決方案。我真的很想知道爲什麼!!? – Ram

0

本地Javascript對象沒有text屬性,但它們確實具有innerHTMLinnerText屬性。要更改元素的文本,可以使用以下任一方法:

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

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

0

使用的innerText

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

如果你想設置一個標籤的文本,你最好使用textContent屬性,像這樣:

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

innerText是不是一個標準的屬性,你會肯定在FireFox中遇到問題