猿问

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

如何解决此错误的任何想法:“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;">

JS


function myFunction() {

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

elmnt.scrollIntoView(); 

}


温温酱
浏览 1096回答 2
2回答

Cats萌萌

替换getElementByClassName为getElementsByClassName请注意,它的复数 ( Elements) 以“ s”结尾,而不是单数 ( Element)同一个类可以添加到多个对象,因此,按类名选择会返回多个项目,而不仅仅是一个,因此它使用复数形式Elements而不是元素,getElementById()因为 id 必须是唯一的,而按 id 选择将只返回一个 DOM 元素并且,由于该函数getElementsByClassName返回的元素数组elmnt.scrollIntoView()不起作用,因此您需要使用数组的第一个元素作为elmnt[0]所以你的代码将是function myFunction() {&nbsp; var elmnt = document.getElementsByClassName("filter-btn");&nbsp; elmnt[0].scrollIntoView();&nbsp;}但是,getElementById如果您只想选择一个元素并使用如下(首先给IdGivenToTheAnchoreTag锚标记提供 id ),我宁愿建议使用function myFunction() {&nbsp; var elmnt = document.getElementById("IdGivenToTheAnchoreTag");&nbsp; elmnt.scrollIntoView();&nbsp;}

有只小跳蛙

您正在寻找getElementsByClassName. 注意元素上的“s”function myFunction() {&nbsp; var elmnt = document.getElementsByClassName("filter-btn");&nbsp; test.scrollIntoView();&nbsp;&nbsp;}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答