gpt4 book ai didi

javascript - 无法删除类(class)

转载 作者:行者123 更新时间:2023-11-29 16:13:45 25 4
gpt4 key购买 nike

我正尝试在我的 HTML 页面上调试下一个 JavaScript 代码:

var langs = document.getElementsByClassName('ss-code-language');
for (var i in langs)
{
langs[i].classList.remove('ss-highlighted');
document.getElementById('assa').classList.remove('ss-highlighted');
}

它工作正常。但是当我删除下一行时:

var langs = document.getElementsByClassName('ss-code-language');
for (var i in langs)
{
langs[i].classList.remove('ss-highlighted');
}

我明白了

Uncaught TypeError: Cannot call method 'remove' of undefined.

但我在 Watch 中看到该项目已定义。下一行代码如何影响上一行代码。

最佳答案

document.getElementsByClassName('ss-code-language')返回类数组对象而不是数组。

elements is a HTMLCollection of found elements.

for (var i in langs) 中,您实际上是在遍历对象的所有属性。

遍历 HTMLCollection:

 collection = document.getElementsByClassName('ss-code-language');
var len = collection.length //see below - accessing length is expensive!
for(var i=0; i<len; i++){
collection.item(i) /* ... */
}

修复:使用 HTMLCollection 时,建议缓存 length 属性。查看更多:

(感谢@Benjamin Gruenbaum)

关于javascript - 无法删除类(class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20857013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com