所以,假设我有3个不同的类:一,二,三。每个班级都有3个这样的div:
<div class="one"></div>
<div class="one"></div>
<div class="one"></div>
<div class="two"></div>
<div class="two"></div>
<div class="two"></div>
<div class="three"></div>
<div class="three"></div>
<div class="three"></div>
然后我给每个班级一个变量:
var _1 = document.getElementsByClassName("one");
var _2 = document.getElementsByClassName("two");
var _3 = document.getElementsByClassName("three);
然后我将它们全部放入数组调用nums:
var nums = [_1,_2,_3];
如果我想通过并改变课程中每个div的文本颜色:一,二和三。如果不这样做,我将如何做到这一点:
function textColor() {
var i;
for (i = 0; i < _1.length; i++) {
_1[i].style.color = "red";
}
for (i = 0; i < _2.length; i++) {
_2[i].style.color = "red";
}
for (i = 0; i < _3.length; i++) {
_3[i].style.color = "red";
}
}
我真的希望只有一个for循环通过并获取数组nums中的所有项目,然后通过并获取nums中每个项目的每个div并更改文本颜色。
答案 0 :(得分:1)
将concat
放入nums
(并将NodeLists转换为数组)时使用var nums = Array.from(_1).concat(Array.from(_2)).concat(Array.from(_3));
var nums = [..._1,..._2,..._3];
或使用点差运算符
function textColor() {
nums.forEach(node => node.style.color = 'red');
}
然后你可以做
=LEFT(CELL("filename");FIND("#$";CELL("filename"))-1)
答案 1 :(得分:1)
你可以这样压扁你的数组:
var flatNums = [].concat.apply([],nums)
然后通过它:
for (i = 0; i < flatNums.length; i++) {
flatNums[i].style.color = "red";
}
答案 2 :(得分:1)
我会做这样的事情:
$(".one, .two, .three").prop("style","color: red;");
或者为所有九个div添加第二个类:s。
答案 3 :(得分:0)
如果您将相同的样式应用于所有div,您可以进一步简化:
divs=document.querySelectorAll('.one, .two, .three');
divs.forEach(function(el) {
el.style.color='red';
})
divs=document.querySelectorAll('.one, .two, .three');
divs.forEach(function(el) {
el.style.color='red';
})
&#13;
<div class="one">1</div>
<div class="one">2</div>
<div class="one">3</div>
<div class="6">
skip
</div>
<div class="two">4</div>
<div class="two">5</div>
<div class="two">6</div>
<div class="three">7</div>
<div class="three">8</div>
<div class="three">9</div>
&#13;