本来想实现一个功能:根据单选radio控件所选的内容出现不同的东西,就写了一段js代码;结果火狐上能调通,可是在IE上调不通,所以在此请各位大哥大姐帮忙解释下原因,错误点,和解决办法
网页错误详细信息用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0)
时间戳: Mon, 3 Jan 2011 16:33:45 UTC
消息: 意外地调用了方法或属性访问。
行: 27
字符: 5
代码: 0
URI: http://localhost:8080/ClassroomManage/querycourse.jsp源代码如下:[align=left]<html>
<head>
<title>课程查询</title>
</head>
<link rel="stylesheet" type="text/css" href="css/style.css">
<script type="text/javascript">
function check(){
var byroom = document.getElementById("byroom");
var byteacher = document.getElementById("byteacher");
if(byroom.checked){
var s = '';
s += '<td id="td0" align="left">选择教学楼<select><option value="0">综合楼</option><option value="2">冶金楼</option><option value="4">第四教学楼</option><option value="5">第五教学楼</option></select></td><td id="td1" align="right">选择教室<select><option value="0">0001</option><option value="2">0002</option><option value="4">0003</option><option value="5">0004</option></select></td>';
var nElement;
nElement = document.createElement("td");
nElement.innerHTML=s;
if(document.getElementById("queryby").childNodes.length != 0){
document.getElementById("queryby").removeChild(document.getElementById("queryby").childNodes[0]);
}
document.getElementById("queryby").appendChild(nElement);
}else{
var s = '';
s += '<td id="td0" align="left">学院<select><option value="0">计控学院</option><option value="2">冶金学院</option><option value="4">机械学院</option><option value="5">信息学院</option></select></td><td id="td1" align="right">选择教室<select><option value="0">5A101</option><option value="2">5A102</option><option value="4">5A103</option><option value="5">5A104</option></select></td>';
var nElement;
nElement = document.createElement("td");
nElement.innerHTML=s;
if(document.getElementById("queryby").childNodes.length != 0){
document.getElementById("queryby").removeChild(document.getElementById("queryby").childNodes[0]);
}
document.getElementById("queryby").appendChild(nElement);
}
}
</script> <body onload="check()">
<form action="">
<table style="margin-left: 50px" width=500>
<tr>
<td colspan=2 align="left">
<input class="radio" id="byroom" type="radio" name="queryBy"
value="room" checked onclick="check()">
按教室查询
<input class="radio" id="byteacher" type="radio" name="queryBy"
value="teacher" onclick="check()">
按教师查询
</td>
</tr>
</table>
</form>
<br>
<div
style="margin-left: 50px; width: 500; height: 300; overflow: auto; BORDER-RIGHT: #9e9e9e 1px solid; BORDER-TOP: #9e9e9e 1px solid; BORDER-LEFT: #9e9e9e 1px solid; BORDER-BOTTOM: #9e9e9e 1px solid;"> </div>
</body>
</html>
网页错误详细信息用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0)
时间戳: Mon, 3 Jan 2011 16:33:45 UTC
消息: 意外地调用了方法或属性访问。
行: 27
字符: 5
代码: 0
URI: http://localhost:8080/ClassroomManage/querycourse.jsp源代码如下:[align=left]<html>
<head>
<title>课程查询</title>
</head>
<link rel="stylesheet" type="text/css" href="css/style.css">
<script type="text/javascript">
function check(){
var byroom = document.getElementById("byroom");
var byteacher = document.getElementById("byteacher");
if(byroom.checked){
var s = '';
s += '<td id="td0" align="left">选择教学楼<select><option value="0">综合楼</option><option value="2">冶金楼</option><option value="4">第四教学楼</option><option value="5">第五教学楼</option></select></td><td id="td1" align="right">选择教室<select><option value="0">0001</option><option value="2">0002</option><option value="4">0003</option><option value="5">0004</option></select></td>';
var nElement;
nElement = document.createElement("td");
nElement.innerHTML=s;
if(document.getElementById("queryby").childNodes.length != 0){
document.getElementById("queryby").removeChild(document.getElementById("queryby").childNodes[0]);
}
document.getElementById("queryby").appendChild(nElement);
}else{
var s = '';
s += '<td id="td0" align="left">学院<select><option value="0">计控学院</option><option value="2">冶金学院</option><option value="4">机械学院</option><option value="5">信息学院</option></select></td><td id="td1" align="right">选择教室<select><option value="0">5A101</option><option value="2">5A102</option><option value="4">5A103</option><option value="5">5A104</option></select></td>';
var nElement;
nElement = document.createElement("td");
nElement.innerHTML=s;
if(document.getElementById("queryby").childNodes.length != 0){
document.getElementById("queryby").removeChild(document.getElementById("queryby").childNodes[0]);
}
document.getElementById("queryby").appendChild(nElement);
}
}
</script> <body onload="check()">
<form action="">
<table style="margin-left: 50px" width=500>
<tr>
<td colspan=2 align="left">
<input class="radio" id="byroom" type="radio" name="queryBy"
value="room" checked onclick="check()">
按教室查询
<input class="radio" id="byteacher" type="radio" name="queryBy"
value="teacher" onclick="check()">
按教师查询
</td>
</tr>
</table>
</form>
<br>
<div
style="margin-left: 50px; width: 500; height: 300; overflow: auto; BORDER-RIGHT: #9e9e9e 1px solid; BORDER-TOP: #9e9e9e 1px solid; BORDER-LEFT: #9e9e9e 1px solid; BORDER-BOTTOM: #9e9e9e 1px solid;"> </div>
</body>
</html>
解决方案 »
- 身份证号校验等求助,在输入身份证号后,自动显示性别和中文年月日形式的出生日期.
- ext combobox 当数据库值为NULL时显示异常 请教各位大侠
- 高分求解如何2组多选框,每组至少选择一个,并将多选值映射成二进制字符串???
- 谁帮忙修复几个小问题。
- js中的简单问题(静态属性和实例属性)?
- 怎么样取消默认表单的验证方式,如要提交有<br></br>这样特殊字符
- 新手,这个问题想不通了,大家帮看看吧!
- 请问 jquery 如何添加子节点?
- 如何用JS实现报表功能,就是横向统计,纵向统计。
- 大家介绍一个比较好的javascript 调试器,谢谢了
- 谷歌浏览器下,如何读取<![CDATA[]]>节点的值
- 请教:js在IE8下出错
另外,通过getElementById取name属性对应的元素,是不符合规范的做法,有兼容性问题。<input type="text" id="input" />
<script type="text/javascript">
var td = document.createElement('td');
var input = document.getElementById('input');
input.appendChild(td);
</script>
FF估计不行 IE貌似可以
<input class="radio" id="byteacher" type="radio" name="queryBy"
value="teacher" onclick="check()">
按教师查询
</td>
</tr>
<tr id="queryby"></tr></table>
</form>我想得到的就是table中的id为"queryby"的这一行,结果可能是因为我的命名跟radio的name"queryBy"冲突IE就报错了。现在我把<tr>的id已经改了,问题也解决了。。还是要谢谢大家!!