You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为元素添加Bootstrap类?解决DOMTokenList调用add方法报错问题

搞定「DOMTokenList.add 包含空格字符」的错误

嘿,这个错误我之前也碰到过!问题出在你给classList.add()传的参数上——你肯定是把两个类名用空格连在一起传了,比如div.classList.add('si col-md-4')对吧?

classList.add()的规则很明确:每个参数必须是单个不含空格的CSS类名,空格是类名的分隔符,不能出现在单个token里,这就是为什么你会触发那个DOMException。

给你两种简单的解决办法:

1. 把多个类名分开作为参数传递

classList.add()本身就支持一次传多个类名,每个类名单独写,用逗号隔开就行:

var row = document.getElementById('row1');
var div = document.createElement('div');
// 把'si'和'col-md-4'分成两个参数
div.classList.add('si', 'col-md-4');
row.appendChild(div);

2. 直接用className属性赋值

如果是一次性给元素设置多个类,也可以直接用className,这里允许带空格(毕竟它本来就是处理完整类名字符串的):

var row = document.getElementById('row1');
var div = document.createElement('div');
div.className = 'si col-md-4';
row.appendChild(div);

额外提个醒:

  • classList的add/remove/toggle这些方法,都是针对单个类名操作的,所以千万别把多个类揉成一个字符串传进去;
  • 如果你的类名是存在数组里的,还可以用扩展运算符:div.classList.add(...['si', 'col-md-4']),非常方便;
  • 对比下来,classList适合单独增删某个类而不影响其他类,className适合一次性覆盖或设置所有类,按需选就行~

内容的提问来源于stack exchange,提问作者Nick.K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:15:17