2010-11-25 39 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>元素中。