IE8和getElementById效果不佳

时间:2014-08-28 19:37:07

标签: javascript html internet-explorer-8

我已经阅读了一些关于IE8的帖子,这会导致getElementByID出现问题但无法找到解决方法。我的代码现在看起来像这样:

<script type="text/javascript">
//<![CDATA[
  function settext(id) {
  switch(id) {
            case "0": document.getElementById('text').innerHTML="something";
            break;
            case "1": document.getElementById('text').innerHTML="again something";
            break;
            default: document.getElementById('text').innerHTML="something the third";
            break;
            }
   }
//]]>
</script><select style="width: 145px" onchange="settext(this.value)">
<option value="-1">something</option>
<option value="0">again</option>
<option value="1">and so on</option>
</select>
<table width="100%" border="0" cellspacing="0" cellpadding="5" id="text"></table>

适用于Firefox,Chrome和IE10。 我很乐意得到一些帮助。

提前致谢!

1 个答案:

答案 0 :(得分:0)

在IE8上 this.value 是一个问题,但不是 getElementById 。我认为您将innerHTML设置为非文本节点。

试试这个 - 它适用于文本节点。

UPDATE :您无法为表格的innerHTML设置值,您应该访问子单元格或行并更改它们:

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
  function settext(id) {
switch(id) {
            case "0":document.getElementById('text').rows[0].cells[0].innerHTML="something";
            break;
            case "1": document.getElementById('text').rows[0].cells[0].innerHTML="again something";
            break;
            default: document.getElementById('text').rows[0].cells[0].innerHTML="something the third";
            break;
            }
   }
</script>
</head>
<body>
<select style="width: 145px" onchange="settext(this.options[this.selectedIndex].value)">
<option value="-1">something</option>
<option value="0">again</option>
<option value="1">and so on</option>
</select>
<table width="100%" border="1" cellspacing="0" cellpadding="5" id="text"><tr><td></td></tr></table>
</body>
</html>

相关答案:https://stackoverflow.com/a/4729743/1960455