将所有具有子类名称的元素添加到一个数组中。但是它将它们添加到三个单独的数组中。为什么?
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>
答案 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>