【发布时间】:2011-03-31 08:01:32
【问题描述】:
我有以下功能:
<script type="text/javascript">
function changeText(elem){
var oldHTML = document.getElementById(elem).innerHTML;
var newHTML = "<span style='color:red'>" + oldHTML + "</span>";
document.getElementById(elem).innerHTML = newHTML;
}
</script>
还有以下 HTML:
<table>
<tr>
<td id = "foo">bar</td>
</tr>
</table>
这会引发“未知的运行时错误”(仅在 IE 中),谷歌搜索告诉我表格元素在带有 innerHTML 的 IE 中是只读的。
我已经尝试寻找解决方法,但它们并没有针对我的具体问题,这只是我想让“bar”这个词变成红色。我不想把“酒吧”这个词改成别的东西。纯粹是颜色变化。
有没有什么方法可以做到这一点,而不需要复杂而缓慢的 DOM 函数,并且不必更改页面上的任何其他 HTML 标记?这是一个表格,其中有一个表格,如果冲浪者提交的表格有错误,“错误”字段应该变成红色。它必须能够执行多次,因为冲浪者可能会弄乱多个字段。
感谢您的建议。
【问题讨论】:
标签: javascript css internet-explorer dom innerhtml