如何修复.remove()在javascript中不起作用

时间:2019-06-05 18:34:46

标签: javascript

我在个人网站上工作,遇到.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

我似乎无法解决此错误,请提供帮助。

1 个答案:

答案 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>