ss003620 2012-08-23 16:48
浏览 233
已采纳

关于js全选反选的问题

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
function showHobby(){
var hobbyObj=document.hobby.userHobby;
for(var i=0;i<hobbyObj.length;i++){
hobbyObj[i].checked=true;
}
}
function showHobby2(){
var hobbyObj=document.hobby.userHobby;
for(var i=0;i<hobbyObj.length;i++){
hobbyObj[i].checked=false;
}
}
function showHobby3(){
var hobbyObj=document.hobby.userHobby;
for(var i=0;i<hobbyObj.length;i++){
hobbyObj[i].checked=!hobbyObj[i].checked;
}
}
</script>
</head>

<body>
<form action="" name="hobby" method="get">
足球<input type="checkbox" name="userHobby" value="zu" />
<input type="button" value="全选" onclick="showHobby()"/>
<input type="button" value="不全选" onclick="showHobby2()">
<input type="button" value="反选" onclick="showHobby3()">
</form>
</body>
</html>

 如上代码,为复选的全选全不选反选功能,当只有一个复选时三个功能都失效了
但将获取对象的代码var hobbyObj=document.hobby.userHobby;更换为
var hobbyObj=document.getElementsByName("userHobby");时,单个复选还可以用着三个功能,为什么呢?

  • 写回答

2条回答 默认 最新

  • iteye_7115 2012-08-23 17:15
    关注

    当checkbox多个时document.hobby.userHobby和document.getElementsByName("userHobby") 返回的都是一个包含checkbox控件的数组,所以都存在length属性
    但当checkbox只有一个的时候,document.hobby.userHobby返回的是不是数组,而是直接对应的那个控件,所以不存在length属性

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?