IE8和getElementById没有'我工作不好

IE8 and getElementById doesn't work well

本文关键字:工作 getElementById 没有 IE8      更新时间:2023-09-26

我已经读过一些关于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。我很乐意在这方面得到一些帮助。

提前感谢!

在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