javascript - How Can I count items in a list in Vanilla Javascript?
问题描述
I want to create a counter for my to-do list. It's showing the count of all items. But it does not update when I add an item. It stays at 3.
It's my Javascript code;
var count = document.getElementById("list").childElementCount;
document.getElementById("title").innerHTML = ("You have " + count + " to-dos.");
// add item
function todoList() {
var item = document.getElementById("todoInput").value
var text = document.createTextNode(item)
var newItem = document.createElement("li")
var check = document.createElement("span")
check.className = "circle"
newItem.appendChild(check)
newItem.appendChild(text)
document.getElementById("list").appendChild(newItem)
// clear input value
document.getElementById("todoInput").value = "";
}
document.getElementById("add").addEventListener('click', todoList, null);
It's my Html code;
<div class="progress">
<div id="title"></div>
</div>
<ul id="list">
<li><span class="circle"></span>Buid a task app</li>
<li><span class="circle"></span>Do exercise</li>
<li><span class="circle"></span>Buy headphones</li>
</ul>
解决方案
todoList()
只需在函数内重复孩子计数
var count = document.getElementById("list").childElementCount;
document.getElementById("title").innerHTML = ("You have " + count + " to-dos.");
// add item
function todoList() {
var item = document.getElementById("todoInput").value
var text = document.createTextNode(item)
var newItem = document.createElement("li")
var check = document.createElement("span")
check.className = "circle"
newItem.appendChild(check)
newItem.appendChild(text)
document.getElementById("list").appendChild(newItem)
count = document.getElementById("list").childElementCount;
document.getElementById("title").innerHTML = ("You have " + count + " to-dos.");
// clear input value
document.getElementById("todoInput").value = "";
}
document.getElementById("add").addEventListener('click', todoList, null);
或者您可以阅读javascript 中的Getter 和 Setter
推荐阅读
- bash - 将变量传递给 Expect 和 Spawn
- python - 在 DF 行上迭代打印输出
- ios - react-native 错误 RCTPushNotification 我需要成为苹果会员才能使用本地 PushNotificationiOS?
- sql-server - 如何创建 T-SQL 函数来读取已作为同一 [update] 事务的一部分更新的值
- ruby-on-rails - Rails 5.2:Bootstrap 4 选项卡面板未正确填充
- spring-boot - 在本地开发期间动态更新前端和后端之间的传输层(vue.js、axios 和 spring-boot)?
- android - 首次检测后停止移动视觉 api
- c# - 循环和操作 SQL 结果集的最快方法是什么?
- aws-sdk - 获取 AWS CodeCommit 中两个修订之间的提交列表
- delphi - Delphi 函数(或 Pascal)的默认返回值