将所有具有子类名称的元素添加到一个数组中

时间:2019-07-01 16:22:43

标签: javascript html

将所有具有子类名称的元素添加到一个数组中。但是它将它们添加到三个单独的数组中。为什么?

document.querySelectorAll('.child').forEach(function(el) {
  var arr = []
  arr.push(Number(el.textContent))
  var largest = Math.max(arr);
  console.log(arr)
})
<div id=“container”>
  <ul>
    <li>5</li>
    <li>10</li>
    <li>15</li>
    <li class="child">20</li>
    <li>25</li>
    <li>30</li>
  </ul>
  <div class="child">
    <p>99</p>
  </div>
  <div class="child">
    <p>63</p>
  </div>
  <div id="bNg8Rb">
  </div>
  <div id="CAIQAA"></div>
  <div id="LC20lb"></div>
</div>

1 个答案:

答案 0 :(得分:4)

您的问题是,每次程序经过foreach循环时,您都在定义一个新的数组。在foreach循环之前定义它,这将解决您的问题。

var arr = [];

document.querySelectorAll('.child').forEach(function(el) {
  arr.push(Number(el.textContent))
})

var largest = Math.max(...arr);

console.log(arr);
console.log(largest);
<div id=“container”>
  <ul>
    <li>5</li>
    <li>10</li>
    <li>15</li>
    <li class="child">20</li>
    <li>25</li>
    <li>30</li>
  </ul>
  <div class="child">
    <p>99</p>
  </div>
  <div class="child">
    <p>63</p>
  </div>
  <div id="bNg8Rb">
  </div>
  <div id="CAIQAA"></div>
  <div id="LC20lb"></div>
</div>