我在页面上有2个chekboxes。每个行都包含在一个表格单元格中。执行document.getElementById('chk1_FEAS~1005')会返回元素,但document.getElementById('chk5_STG2~1005')为空。出于什么原因可能会发生这种情况? (我在IE 8中测试)。
<input id="chk1_FEAS~1005" value="JobStages###StageCode~JobCode###FEAS~1005" onclick="addRemoveRow(this.value,this.checked)" style="border-width:0px;padding:1px;margin:0px;height:14px;" type="checkbox" />
<input id="chk5_STG2~1005" value="JobStages###StageCode~JobCode###STG2~1005" onclick="addRemoveRow(this.value,this.checked)" style="border-width:0px;padding:1px;margin:0px;height:14px;" type="checkbox" />
答案 0 :(得分:10)
您的ID包含无效字符:
ID和NAME令牌必须以a开头 信([A-Za-z]),可以遵循 任意数量的字母,数字 ([0-9]),连字符(“ - ”),下划线 (“_”),冒号(“:”)和句号 ( “”)。
更多信息here。
答案 1 :(得分:1)
document.getElementById('hk5_STG2~1005')
应该是
document.getElementById('chk5_STG2~1005')
: - )
答案 2 :(得分:0)
查看您的示例,这是一个拼写错误,第二项应该是document.getElementById('chk5_STG2~1005')
另外,我建议删除〜字符,因为它对于id无效。
答案 3 :(得分:0)
对于它的价值,我在IE8的复选框上使用document.getElementById
时遇到了类似的问题。尝试将此标记添加到您的头部: -
<meta http-equiv="X-UA-Compatible" content="IE=7" />
这将迫使IE8进入IE7兼容模式。它对我来说是一种解决方法,直到我找到了真正的东西。