所以当我试图通过这段代码向我的元素添加两个类时
var curr_class = document.getElementById(hover_start).className
document.getElementById(hover_start).classList.add("cell-red",curr_class)
我有这个错误
未捕获的DOMException:无法在“DOMTokenList”上执行“add”:提供的标记('1 cell-red')包含HTML空格字符,这些字符在标记中无效。
我没有看到任何不正确的白色在这里
4条答案
按热度按时间ef1yzkbh1#
问题似乎是
curr_class
是一个包含空格的字符串根据文档https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList
你应该一个接一个地添加类。
还请注意,您的代码所做的是:它获取一个元素的类并将其添加到同一个元素中,所以没有什么有用的
yhived7q2#
在你的类名称中似乎有一个空格:
1 cell-red
在1
和cell-red
之间。一个解决方案是逐个添加类:
sqougxex3#
@CharybdeBE是正确的
或者,您可以在add函数中用逗号分隔类。
例如:
ijxebb2r4#
当类为空字符串时也会发生此错误。因此,有必要:
1.在传入字符串之前修剪它(因为
DOMTokenList
将尝试修剪并出错)1.在调用
add()
之前检查字符串是否为空1.按空格分割字符串
1.将字符串数组作为参数展开
用于将
img
转换为canvas
的函数的用法示例: