为什么Mozilla FF不更新innerHTML?

时间:2010-11-25 07:39:42

标签: javascript html mozilla innerhtml

我正在尝试动态更改HTML元素的CSS ...为此我使用的是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>

5 个答案:

答案 0 :(得分:4)

对TextArea使用.value

答案 1 :(得分:1)

关于你的要求,你为什么不这样做:

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

因为使用innerHTML更改元素的CSS类似乎很奇怪......

答案 2 :(得分:1)

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

里面的元素/值被视为纯文本而非html。

您应该使用value属性来检索其内容。

使用:

document.getElementById('c').value

答案 3 :(得分:0)

为什么要使用innerHTML? 使用innerHTML是使用id将内容动态插入特定代码。

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

答案 4 :(得分:0)

始终使用value属性更改<textarea>的值。

似乎有一种常见的误解,innerHTML是一种可行的甚至更好的方法。它既不是。

更改文本区域的innerHTML属性只会在用户编辑textarea的内容或通过更改value属性的脚本更改值之后才会起作用,因为textarea元素的子节点仅代表其初始值。

它与innerHTML的标准兼容性无关,或者<textarea>元素中只有一个文本节点是合法的:如果您尝试更改,则会获得完全相同的行为nodeValue元素中包含的文本节点的<textarea>属性。