如何优化 querySelectorAll 记录?
How to optimize a querySelectorAll record?
我下面有一个js代码。问题是 - 是否可以将这些行合并为一条?
if (n === 6) {
document.querySelectorAll('.dice#one .d_dot')[0].classList.remove('invisible');
document.querySelectorAll('.dice#one .d_dot')[2].classList.remove('invisible');
document.querySelectorAll('.dice#one .d_dot')[3].classList.remove('invisible');
document.querySelectorAll('.dice#one .d_dot')[5].classList.remove('invisible');
document.querySelectorAll('.dice#one .d_dot')[6].classList.remove('invisible');
document.querySelectorAll('.dice#one .d_dot')[8].classList.remove('invisible');
}
例如像这样:
document.querySelectorAll('.dice#one .d_dot')[0, 2, 3, 5, 6, 8].classList.remove('invisible');
(实际上是行不通的)
提前致谢!
使用循环。
var dice = document.querySelectorAll('.dice#one .d_dot');
[0, 2, 3, 5, 6, 8].forEach(index => dice[index].classList.remove('invisible'));
.querySelectorAll()
returns 元素的节点列表(集合)。节点列表没有 classList
,其中的元素有,因此您必须对每个元素都这样做。但是,有一种更简单的方法,即循环遍历集合并对其中的每个元素进行操作:
let nums = [0, 2, 3, 5, 6, 8];
document.querySelectorAll('.dice#one .d_dot').forEach(function(item, index){
if(nums.indexOf(index) > -1 ){
item.classList.remove('invisible');
}
});
我下面有一个js代码。问题是 - 是否可以将这些行合并为一条?
if (n === 6) {
document.querySelectorAll('.dice#one .d_dot')[0].classList.remove('invisible');
document.querySelectorAll('.dice#one .d_dot')[2].classList.remove('invisible');
document.querySelectorAll('.dice#one .d_dot')[3].classList.remove('invisible');
document.querySelectorAll('.dice#one .d_dot')[5].classList.remove('invisible');
document.querySelectorAll('.dice#one .d_dot')[6].classList.remove('invisible');
document.querySelectorAll('.dice#one .d_dot')[8].classList.remove('invisible');
}
例如像这样:
document.querySelectorAll('.dice#one .d_dot')[0, 2, 3, 5, 6, 8].classList.remove('invisible');
(实际上是行不通的)
提前致谢!
使用循环。
var dice = document.querySelectorAll('.dice#one .d_dot');
[0, 2, 3, 5, 6, 8].forEach(index => dice[index].classList.remove('invisible'));
.querySelectorAll()
returns 元素的节点列表(集合)。节点列表没有 classList
,其中的元素有,因此您必须对每个元素都这样做。但是,有一种更简单的方法,即循环遍历集合并对其中的每个元素进行操作:
let nums = [0, 2, 3, 5, 6, 8];
document.querySelectorAll('.dice#one .d_dot').forEach(function(item, index){
if(nums.indexOf(index) > -1 ){
item.classList.remove('invisible');
}
});