2010-11-25 81 views
1

我試圖改變一個HTML元素的CSS動態...爲此,我使用的是innerHTML。爲什麼Mozilla FF不更新innerHTML?

我面臨的問題是,也許Mozilla會記住textarea的第一篇文章的innerHTML。因此,如果用戶在textarea中編輯文本,則無法顯示新文本並在textarea中顯示原始文本。在IE中它工作正常。

innerHTML和mozilla firefox出了什麼問題?

<html> 
<head> 
<title></title> 
<script type="text/javascript"> 
function abc() 
{ 
    alert(document.getElementById("c").innerHTML); 
} 
</script> 
</head> 
<body> 
<textarea id="c" onclick="abc()">hello...</textarea> 
</body> 
</html> 
+0

通過innerHTML改變css怎麼樣? – ArK 2010-11-25 07:43:57

回答

1

關於你的要求,你爲什麼不只是做:

document.getElementById("c").className = "myCSSClass"; 

,因爲使用innerHTML更改CSS類的元素似乎很奇怪...

0

你爲什麼想使用innerHTML? 使用innerHTML是使用id動態地將內容插入到特定標籤。

可以使用alert(document.getElementById("c").value);

4

使用.value的文本區爲

1

不能包含子元素,而是價值。

裏面的元素/值被視爲純文本而不是html。

您應該使用value屬性來檢索其內容。

使用:

document.getElementById('c').value 
0

始終使用value屬性更改<textarea>的價值。

innerHTML這是一個可行或甚至更高級的做法似乎是一個常見的誤解。它既不是。

會發生什麼事是,直到該值已更改更改文本區域的innerHTML屬性只會工作,或者由用戶編輯的文字區域或通過腳本改變value財產的內容,因爲一個子節點textarea元素僅表示其初始值的值。

這是無關的標準符合或以其他方式innerHTML,或只有一個文本節點的<textarea>元素中是合法的:你得到完全相同的行爲,如果你試圖改變文本節點的nodeValue財產包含在<textarea>元素中。