任何解决此错误的方法:“ 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();
}
答案 0 :(得分:1)
用getElementByClassName
替换getElementsByClassName
请注意,其复数(Elements
)的末尾带有“ s”,而不是单数(Element
)
可以将同一个类添加到多个对象,因此,按类名称进行选择会返回多个项目,而不仅仅是一个项目,因此它使用复数形式Elements
而不是Element,就像getElementById()
作为id一样必须是唯一的,并且按id选择将仅返回一个DOM元素
,并且由于函数getElementsByClassName
返回元素数组elmnt.scrollIntoView()
不起作用,
因此您需要将数组的第一个元素用作elmnt[0]
因此您的代码将是
function myFunction() {
var elmnt = document.getElementsByClassName("filter-btn");
elmnt[0].scrollIntoView();
}
但是,如果您只想选择一个元素并按如下所示使用,我宁愿建议使用getElementById
(首先给ID IdGivenToTheAnchoreTag
定位标记)
function myFunction() {
var elmnt = document.getElementById("IdGivenToTheAnchoreTag");
elmnt.scrollIntoView();
}
答案 1 :(得分:0)
您正在寻找getElementsByClassName
。注意元素上的“ s”
function myFunction() {
var elmnt = document.getElementsByClassName("filter-btn");
test.scrollIntoView();
}