如何选择所有lis,然后将其所有数字相加?

时间:2019-07-01 13:03:59

标签: javascript html arrays input selector

  <div id=“container”> 
<!--i want to select all the li and the add all their numbers together -->
            <ul> 
                <li>5</li> 
                <li>10</li> 
                <li>15</li> 
                <li class="child">20</li> 
                <li>25</li> 
                <li>30</li> 
                <li>25</li> 
                <li>30</li> 
                 <li>25</li> 
                <li>30</li> 
                <li>25</li> 
                <li>30</li>
            </ul> 
    </div> 

我要选择所有li,然后将所有数字加在一起 我想选择所有li,然后将所有数字加在一起

4 个答案:

答案 0 :(得分:3)

您可以使用函数document.querySeclectorAll和函数reduce来添加值。

let result = Array.from(document.querySelectorAll('#container li')).reduce((a, {textContent}) => a + +textContent, 0);
console.log(result);
<div id="container">  <!--i want to select all the li and the add all their numbers together -->  <ul>    <li>5</li>    <li>10</li>    <li>15</li>    <li class="child">20</li>    <li>25</li>    <li>30</li>    <li>25</li>    <li>30</li>    <li>25</li>    <li>30</li>    <li>25</li>    <li>30</li>  </ul></div>

答案 1 :(得分:1)

您可以尝试使用querySelectorAll()forEach()

var sum = 0;
document.querySelectorAll('#container ul > li').forEach(function(el){
  sum += Number(el.textContent);
});
console.log(sum);
<div id="container"> 
  <ul> 
      <li>5</li> 
      <li>10</li> 
      <li>15</li> 
      <li class="child">20</li> 
      <li>25</li> 
      <li>30</li> 
      <li>25</li> 
      <li>30</li> 
       <li>25</li> 
      <li>30</li> 
      <li>25</li> 
      <li>30</li>
  </ul> 
</div> 

答案 2 :(得分:0)

使用NodeList通过getElementsByTagName()进行迭代:

var lis = document.getElementById("container").getElementsByTagName("li");

像遍历数组一样遍历列表。

答案 3 :(得分:0)

let li = [...document.querySelectorAll('#container ul > li')]; //
let counter = 0; //the sum of all li

li.forEach(el => {
    counter += el.textContent * 1;
});