我正在尝试动态更改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>
答案 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>
属性。