javascript - 类列表.add()。如何插入变量而不是字符串?
问题描述
我正在尝试创建一个循环,每次执行时都会更改元素的类
HTML
<select class="form-control" id="FormControlSelect2" onchange="changeButtonColor2(this)">
<option value="Random1">Random</option>
</select>
JS
const all_buttons = document.getElementsByTagName('button');
function changeButtonColor2(buttonThingy) {
if (buttonThingy.value === 'Random1') {
buttonsRandom();
}
}
function buttonsRandom() {
for (let i=0; i < all_buttons.length; i++ ){
all_buttons[i].classList.remove(all_buttons[i].classList[1]);
}
var choices = ['btn btn-primary', 'btn btn-success', 'btn btn-danger',
'btn btn-warning','btn btn-secondary','btn btn-info', 'btn btn-dark',];
var randomNumber = Math.floor(Math.random() * 7);
var randomClass = choices[randomNumber];
for (let i = 0; i < randomClass.length; i += 1) {
all_buttons[i].classList.add(randomClass[i]);
}
}
JS 错误信息
InvalidCharacterError: The string contains invalid characters. (= last line of the JS code)
是否可以使用变量的输出?如果不是,解决方案是什么?请指教。
解决方案
下面的工作终于:)
function buttonsRandom() {
var choices = ['btn-primary', 'btn-success', 'btn-danger',
'btn-warning','btn-secondary','btn-info', 'btn-dark',];
var randomNumber = Math.floor(Math.random() * 7);
var randomClass = choices[randomNumber];
console.log(randomClass);
for (let i=0; i < all_buttons.length; i++ ){
all_buttons[i].classList.remove(all_buttons[i].classList[1]);
all_buttons[i].classList.add(randomClass);
}
谢谢你一定的表现
推荐阅读
- react-native - react-native : 如何同时从 redux 存储和获取存储的数据
- javascript - React-datepicker minTime 和 maxTime 不起作用
- kubernetes - 尝试使用“kubeadm”加入集群时,节点没有获得证书
- javascript - idangerous SwiperJS - 在自由模式下只显示最后一张幻灯片而不是 3
- function - SAS 扫描功能不包括数字字符和其他分隔符
- android - 在 Android 中使用 SearchableSpinner 和自定义适配器
- snowflake-cloud-data-platform - 如何将 JSON 中的额外列添加到雪花表中?
- python - 在 driver.execute_script() 中使用伪选择器时无法将某些元素滚动到视图中
- python - Wagtail:在片段与页面模型中编辑 GeoJSON 字段的处理
- vb.net - 使用 VB 和 DataRow Select 语句的参数语法错误