如何从用户输入中获取列表中的项目总和



im试图让添加到列表中的用户输入项目,然后找到列表中所有项目的总和。当然,这只能与数字一起使用,我会有指示提示用户仅输入数字,但是如何从用户输入的列表中获取项目总和?

我当前的代码仅获取用户输入类型在文本框中的文本,然后将这些项目放入列表中。

<!DOCTYPE html>
<html>
  <head></head>
  <body>
    <input type='text' id='input' />
    <input type='button' value='add to list' id='add' />
    <ul id='list'>
      <li> <b>Topics</b></li>
    </ul>
    <script type="text/javascript">
      document.getElementById("add").onclick = function() {
        var text = document.getElementById("input").value;
        var li = document.createElement("li");
        li.innerText = text;
        document.getElementById("list").appendChild(li);
      }
    </script>
  </body>
</html>

将其添加到称为sum的变量中,并使用.innerHTML在页面上显示总和。

由于输入是字符串,请使用parseInt()将其转换为数字,以便将其添加到总和时,它实际上会添加,而不仅仅是将项目添加到总和的末尾。

下面的摘要作品。

var sum = 0;
document.getElementById("add").onclick = function() {
  var text = document.getElementById("input").value;
  var li = document.createElement("li");
  li.innerText = text;
  sum += parseInt(text);
  
  document.getElementById("list").appendChild(li);
  document.getElementById("sum").innerHTML = sum;
}
<!DOCTYPE html>
<html>
<head></head>
<body>
  <input type='text' id='input' />
  <input type='button' value='add to list' id='add' />
  <ul id='list'>
    <li> <b>Topics</b></li>
  </ul>
  
  <h3 id="sum">0</h3>
</body>
</html>

您可以使用 dataset属性保留当前总和,对于每个属性的新 li更新。

<ul id='list' data-total="0">...</ul>
list.dataset.total = Number(list.dataset.total) + Number(text);

let list = document.getElementById("list");
let sum = document.getElementById("sum");
document.getElementById("add").onclick = function() {
  let text = document.getElementById("input").value;
  let li = document.createElement("li");
  li.innerText = text;
  list.appendChild(li);
  list.dataset.total = Number(list.dataset.total) + Number(text);
  sum.textContent = list.dataset.total;
}
<input type='text' id='input' />
<input type='button' value='add to list' id='add' />
<ul id='list' data-total="0">
  <li><b>Topics (<span id='sum'></span>)</b></li>
</ul>

相关内容

  • 没有找到相关文章

最新更新