为什么换成byId就不行

为什么换成byId就不行

我使用byName的时候就可以成功全选,

但是用byId,既不会报错,也不会有反应

我试着在函数最后加上一句alert()测试,也没有弹出框来


我对byName和byId的理解是:只是查找对象的方式不同而已,最终不都是可以指向某一个标签吗

相关截图:

相关代码:

//将复选框全选
function allbingo(){
var list = document.getElementById('cbox');
for (var i = 0; i < list.length; i++) {
list[i].checked = true;
}
alert('haha');
}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小轩 2021-02-22 19:12:26

同学,你好!

1. alert前边的代码报错了没有往下执行,所以没有弹框,如下图所示:
http://img1.sycdn.imooc.com//climg/60338f070926395d11270119.jpg
http://img1.sycdn.imooc.com//climg/6033900909f2bbdd03580108.jpg

2. 同学理解的不正确,可结合下面的解释进行理解:

    ​getElementById() 方法可返回对拥有指定 ID 的第一个对象的引用。在操作文档的一个特定的元素时,最好给该元素一个 id 属性,为它指定一个唯一的名称,然后就可以用该 ID 查找想要的元素。

    getElementsByName() 方法可返回带有指定名称的对象的集合。因为一个文档中的 name 属性可能不唯一,所以 getElementsByName() 方法返回的是元素的数组,而不是一个元素。

祝:学习愉快!

  • 提问者 反冲斗士 #1

    for循环那里有什么错误呢,是因为byID只返回一个元素,所以不是数组类型吗

    2021-02-26 13:57:38
  • 好帮手慕小轩 回复 提问者 反冲斗士 #2

    同学,你好!var list = document.getElementById('interest')通过Id没有获取到对应的值,返回的是null,不是数组类型,因此报错
    祝:学习愉快!

    2021-02-26 15:00:15
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.从网页搭建入门Python Web
  • 参与学习           人
  • 提交作业       218    份
  • 解答问题       3562    个

本阶段带你用Python开发一个网站,学习主流框架Django+Flask是Python Web开发的第一步,在基础知识上实现积分商城的项目开发,体验真实的项目开发流程,提高解决编程问题和效率的能力。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师