我在个人网站上工作,遇到.remove()JS函数问题。我正在尝试选择具有“空载”类的所有元素,然后从该元素中删除该类。
我尝试选择ID为querySelectorAll,getElementByClassName的元素,但每次.remove()返回“未捕获的TypeError:无法读取未定义的属性'remove'”
我有一个id为main的元素main。它有2个类,即“空载”和“不透明零”。
<main class = "no-load opacity-zero" id = "main">
在JavaScript控制台中选择它
> main
产生正确的结果:
< <main class = "no-load opacity-zero" id = "main">
选择班级列表也可以:
> main.classlist
< DOMTokenList(2) ["no-load", "opacity-zero", value: "no-load opacity-zero"]
但是,尝试删除一个类会导致:
> main.classlist.remove("no-load")
< Uncaught TypeError: Cannot read property 'remove' of undefined
我似乎无法解决此错误,请提供帮助。
答案 0 :(得分:-1)
classlist
应该是classList
对您的元素进行空检查也是一个好主意,这样,如果找不到该元素,classList
将返回错误。
const div = document.querySelector('.myClass');
console.log('before remove', div.classList.value);
if (div && div.classList) {
div.classList.remove('myClass');
}
console.log('after remove', div.classList.value);
<div class="myClass"></div>