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

在控制台中出现“document.getElementByClassName 不是函数”错误

在控制台中出现“document.getElementByClassName 不是函数”错误

温温酱 2021-12-23 19:28:20
如何解决此错误的任何想法:“document.getElementByClassName 不是函数”代码如下:HTML:<a href="#" class="filter-btn" onclick="myFunction()" data-filter="opd-list-id-<?php echo $item->ID; ?>" style="background:<?php echo $filter_background_color ?>;color:<?php echo $filter_text_color ?> !important;">JSfunction myFunction() {var elmnt = document.getElementByClassName("filter-btn");elmnt.scrollIntoView(); }
查看完整描述

2 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

替换getElementByClassName为getElementsByClassName


请注意,它的复数 ( Elements) 以“ s”结尾,而不是单数 ( Element)


同一个类可以添加到多个对象,因此,按类名选择会返回多个项目,而不仅仅是一个,因此它使用复数形式Elements而不是元素,getElementById()因为 id 必须是唯一的,而按 id 选择将只返回一个 DOM 元素


并且,由于该函数getElementsByClassName返回的元素数组elmnt.scrollIntoView()不起作用,

因此您需要使用数组的第一个元素作为elmnt[0]


所以你的代码将是


function myFunction() {

  var elmnt = document.getElementsByClassName("filter-btn");

  elmnt[0].scrollIntoView(); 

}

但是,getElementById如果您只想选择一个元素并使用如下(首先给IdGivenToTheAnchoreTag锚标记提供 id ),我宁愿建议使用


function myFunction() {

  var elmnt = document.getElementById("IdGivenToTheAnchoreTag");

  elmnt.scrollIntoView(); 

}


查看完整回答
反对 回复 2021-12-23
?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

您正在寻找getElementsByClassName. 注意元素上的“s”


function myFunction() {

  var elmnt = document.getElementsByClassName("filter-btn");

  test.scrollIntoView();  

}


查看完整回答
反对 回复 2021-12-23
  • 2 回答
  • 0 关注
  • 1095 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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