for (i in this.button_list){ if (i !== index){ document.getElementById('factory' + i).className = 'sx_child' } else { document.getElementById('factory' + index).className = 'sx_child on' } } 修改代码,使其可用
时间: 2023-12-10 10:38:08 浏览: 56
您需要将代码中的 `this.button_list` 修改为 `Object.keys(this.button_list)`,因为 `this.button_list` 是一个对象,而 `for...in` 循环在遍历对象时会遍历原型链上的属性,可能会导致意外的行为。使用 `Object.keys()` 可以避免这种情况。
修改后的代码如下:
```
for (let i of Object.keys(this.button_list)) {
if (i !== index) {
document.getElementById('factory' + i).className = 'sx_child';
} else {
document.getElementById('factory' + index).className = 'sx_child on';
}
}
```
这样修改后就可以正常运行了。
相关问题
button_list: Array, for (i in this.button_list){ if (i !== index){ document.getElementById('factory' + i).className = 'sx_child' } else { document.getElementById('factory' + i).className = 'sx_child on' } } 修改代码,使其可用
可以尝试以下代码:
```
for (var i = 0; i < this.button_list.length; i++) {
if (i !== index) {
document.getElementById('factory' + i).classList.remove('on');
document.getElementById('factory' + i).classList.add('sx_child');
} else {
document.getElementById('factory' + i).classList.remove('sx_child');
document.getElementById('factory' + i).classList.add('on');
}
}
```
这里使用了 `classList` 属性来操作元素的类,避免了直接修改 `className` 导致的问题。同时使用了 `var` 来声明变量,避免了在 `for...in` 循环中出现意外的问题。
阅读全文