如何使用javascript

时间:2017-12-13 22:36:23

标签: javascript jquery html css arrays

所以,假设我有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并更改文本颜色。

4 个答案:

答案 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';
})

&#13;
&#13;
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;
&#13;
&#13;