为了账号安全,请及时绑定邮箱和手机立即绑定

element.className仅返回“未定义”

element.className仅返回“未定义”

DIEA 2021-03-30 13:19:20
我正在尝试创建一个交互式的小画廊,人们可以在其中查看/选择一些图片。我用了一些来包含图片,并在其中添加了一些来表示所选的照片。然后,我输入了一些JS代码,以使用的className检查或取消选中照片。所以我的两个问题是:该代码未按预期运行。当我在导航器中跑动时,无法选择任何图片。控制台仅返回“未定义”,如下面的代码中所述。这是一些代码:这是我在JS中的第一次尝试,我真的不明白什么是行不通的,所以我希望您能得到答案或至少对我有一些提示。:)
查看完整描述

3 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

如前面的答案中所述,getElementsByClassName方法返回具有您传递给该方法的类名称的元素的HTMLCollection。如果您需要访问任何项,则需要像数组一样进行操作。


例如,获取集合的第一个元素。


unselectedClass[0].className;

否则,您可以使用for循环来访问集合中的每个元素。


for (var i = 0; i < unselectedClass.length; i++) {

    var class = unselectedClass[i].className;

}


查看完整回答
反对 回复 2021-04-15
?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

getElementsByClassName产生元素的集合。该className属性在该列表中的特定元素上可用。不在列表本身上。


查看完整回答
反对 回复 2021-04-15
?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

问题是document.getElementsByClassName返回HTMLCollection和HTMLCollection。您应该检查className其元素。


您可以遍历它,然后获取className每个元素


for(let i = 0;i<unslectedClass.length;i++){

   console.log(unselectedClass[i].className);

}

或HTMLCollection使用Spread Operator将转换为实数组并使用forEach()


[...unselectedClass].forEach(x => console.log(x.className))


查看完整回答
反对 回复 2021-04-15
  • 3 回答
  • 0 关注
  • 294 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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