2015-06-11 48 views
-4

爲什麼我們不能使用text屬性來更改元素,而是我們必須使用innerHTML屬性?爲什麼我們不能使用text屬性來更改元素?

它不工作:

h1.text = "The Title"; 

而且它的工作原理:

h1.innerHTML = "The title"; //It's worked; 
+0

我推薦學習javascript和DOM的基礎知識,沒有任何框架(如JQuery)。 – jazZRo

+0

謝謝你的建議。 –

回答

2

你誤用jQuery的API的原生DOM API。


設置文本

jQuery的

$elem.text("foo"); 

DOM API

elem.textContent = "foo"; 

設置HTML

jQuery的

$elem.html("<p>foo</p>"); 

DOM API

elem.innerHTML = '<p>foo</p>'; 

使用DOM API,你也可以使用一個textNode添加文本的元素。

var p = document.createElement("p"); 
var text = document.createTextNode("foo"); 
p.appendChild(text); 
//=> <p>foo</p> 
+0

謝謝。爲什麼我可以在chrome dev中運行:h1.text =「The Title」,並獲取一個字符串值。 –

+0

@GeXiaoxiong當你做'var a = {}; a.text =「title」;'返回值是'「title」'。這並不意味着Chrome實際上正在設置'h1'元素的textContent;這只是javascript賦值表達式的返回值。 – naomik

+0

清除!謝謝。 –

0

「的.text」在JavaScript中不支持,但在JS

和jQuery庫無屬性都呼籲HTML(申辯)運行的JavaScript

的innerHTML的funtion

HERE你可以得到基本的知識約DOM

0

你會使用這個h1.innerHTML = "Hello world!"如果您正在使用AJ avascript。否則$("h1").text("Hello world!");如果你使用JQuery。

+0

jQuery ___是JavaScript。不,'innerHTML'和'.text()'不是那麼可比的。 – Cerbrus

+0

對不起。一個JQuery庫。 –

+1

不完全正確... jQuery是一個JavaScript庫。 – Cerbrus

相關問題