Uncaught TypeError: Cannot read property 'contains' of undefined
Uncaught TypeError: Cannot read property 'contains' of undefined
您好,我喜欢遍历所有包含 class 活动的 "slide" 项,并获取它们的 "data-headertext" 属性。我做错了什么?
<div class="slide active"></div>
var elems = document.getElementsByClassName('slide');
for (var i = 0, len = elems.length; i < len; i++) {
if (elems.classList.contains("active")) {
myJavascriptFunc
}
}
function myJavascriptFunc() {
alert(this.getAttribute('data-headertext'));
}
elems
在你的代码中是一个没有 属性 classList
的节点列表。您应该访问 elems
中元素的 classList
if (elems[i].classList.contains("active"))
更简单的方法:
也可以使用 querySelectorAll()
giving it multiple classes and loop using forEach()
const elems = document.querySelectorAll('.slide.active')
elems.forEach(a => console.log(a.getAttribute('data-headertext')))
在这种情况下,您希望获得 data
属性。所以最好使用 HTMLElement.dataset
`
const elems = document.querySelectorAll('.slide.active')
elems.forEach(a => console.log(a.dataset.headertext));
您好,我喜欢遍历所有包含 class 活动的 "slide" 项,并获取它们的 "data-headertext" 属性。我做错了什么?
<div class="slide active"></div>
var elems = document.getElementsByClassName('slide');
for (var i = 0, len = elems.length; i < len; i++) {
if (elems.classList.contains("active")) {
myJavascriptFunc
}
}
function myJavascriptFunc() {
alert(this.getAttribute('data-headertext'));
}
elems
在你的代码中是一个没有 属性 classList
的节点列表。您应该访问 elems
classList
if (elems[i].classList.contains("active"))
更简单的方法:
也可以使用 querySelectorAll()
giving it multiple classes and loop using forEach()
const elems = document.querySelectorAll('.slide.active')
elems.forEach(a => console.log(a.getAttribute('data-headertext')))
在这种情况下,您希望获得 data
属性。所以最好使用 HTMLElement.dataset
`
const elems = document.querySelectorAll('.slide.active')
elems.forEach(a => console.log(a.dataset.headertext));