2011-01-24 25 views
45

在網頁中,我打電話給一個WebService,它給了我一個整數值。我需要在一段文字中顯示這個值。我目前使用HTML <span>使用Javascript設置HTML <span>的內容

到目前爲止,我發現了兩種將我的價值放在一個範圍內的方法。 innerText()是IE專有的做法,innerHTML()是一種非標準兼容方式,雖然得到廣泛支持。

什麼是正確的標準兼容方式設置<span></span>之間的文字從Javascript?

+5

至於HTML5,`innerHTML` ** **是一部分規範http://dev.w3.org/html5/spec/Overview.html#innerhtml並支持所有瀏覽器(減去*(在所有瀏覽器中的)* *問題,在* table *上設置* `select`元素/子元素) – scunliffe 2011-01-24 17:03:43

回答

49

這是符合標準且跨瀏覽器安全的。

例子:http://jsfiddle.net/kv9pw/

var span = document.getElementById('someID'); 

while(span.firstChild) { 
    span.removeChild(span.firstChild); 
} 
span.appendChild(document.createTextNode("some new content")); 
18

要做到這一點,而無需使用JavaScript庫如jQuery,你會做這樣的:

var span = document.getElementById("myspan"), 
    text = document.createTextNode(''+intValue); 
span.innerHTML = ''; // clear existing 
span.appendChild(text); 

如果你想使用jQuery,它只是這個:

$("#myspan").text(''+intValue); 
+6

You ca n只是`.text(intValue)`。串聯強制字符串轉換不是必需的。 – chaos 2011-01-24 16:52:24

1

符合最大標準的方法是創建一個包含您想要的文本的文本節點,並將其附加到跨度(刪除任何當前存在的文本節點)。

我實際上會這樣做的方式是使用jQuery的.text()

28

隨着現代瀏覽器,你可以設置textContent屬性,看Node.textContent

var span = document.getElementById("myspan"); 
span.textContent = "some text"; 
+5

爲現代瀏覽器而歡呼! – Aligned 2014-05-29 16:30:23

相關問題