我有以下功能:
<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中),谷歌搜索后来告诉我,表元素在IE中是只读的,带有innerHTML。
我已经尝试过找到解决方法,但是他们没有针对我的具体问题,这就是我想让“bar”这个词变成红色。我不想将“bar”改为其他东西。纯粹是换色。
如果没有复杂而缓慢的DOM功能并且无需更改页面上的任何其他HTML标记,有没有办法做到这一点?这是一个包含表单的表格,如果冲浪者提交带有错误的表单,“错误”字段应该变为红色。它必须能够多次执行,因为冲浪者可能会淹没多个领域。
感谢您的任何建议。
答案 0 :(得分:0)
为什么不将单元格更改为color:'red'
:
var td = document.getElementById(elem);
td.style.color = 'red';
答案 1 :(得分:0)
有几种方法可以解决这个问题。这里有一些快速的方法可以帮助您 - 或者直到其他人使用更清洁/更好的方法。
我更喜欢以下内容:在css中定义错误类:
.errorHighlight { color:red;}
然后是javascript:
function changeText(elem){
document.getElementById(elem).className="errorHighlight";
}
function changeTextBack(elem){
document.getElementById(elem).className="";
}
这假设您没有设置任何类。如果这样做,您可能需要读取名称,并使用空格附加错误类。
同样,有很多方法可以解决这个问题,您希望选择最适合您应用的方法。