javascript - 在 javascript 待办事项应用程序中制作计数器
问题描述
我制作了一个小 javascript 待办事项应用程序,以便更好地使用该语言。我正在尝试创建一个计数器,每次将任务添加到有序列表时它都会增加,但它不起作用。这是我的代码:
var button = document.getElementById('add-button');
button.addEventListener('click', function() {
var item = document.getElementById('input').value;
var text = document.createTextNode(item);
var newItem = document.createElement('li');
newItem.appendChild(text);
document.getElementById('todoList').appendChild(newItem);
var count = 0;
count++;
document.getElementById('counter').innerHTML = count;
var removeTask = document.createElement('img');
removeTask.setAttribute('src', '/images/trash.jpg');
removeTask.setAttribute('id', 'trash');
removeTask.addEventListener('click', function() {
newItem.parentNode.removeChild(newItem);
});
newItem.appendChild(removeTask);
});
<div class="header">
<form>
<h2>Todo App</h2>
<p>Add a new todo</p>
<input type="text" id="input" placeholder="Enter an activity......">
<button type="button" id="add-button">Add Task</button>
</form>
</div>
<ol id="todoList">
<h1>Things to do:</h1>
<div id="counter">0</div>
</ol>
现在它在单击时增加到 1,但它在那里结束。我尝试制作一个循环直到 newItem 的长度,但这根本不起作用。如何在每次添加项目时使其递增?
解决方案
您需要count
在事件侦听器的范围之外进行定义,否则对于添加的每个项目,您将始终将 0 递增 1(并且 0+1 始终为 1)。将声明放在侦听器之外,并增加该值:
var button = document.getElementById('add-button');
var count = 0;
button.addEventListener('click', function() {
var item = document.getElementById('input').value;
var text = document.createTextNode(item);
var newItem = document.createElement('li');
newItem.appendChild(text);
document.getElementById('todoList').appendChild(newItem);
count++;
document.getElementById('counter').innerHTML = count;
var removeTask = document.createElement('img');
removeTask.setAttribute('src', '/images/trash.jpg');
removeTask.setAttribute('id', 'trash');
removeTask.addEventListener('click', function() {
newItem.parentNode.removeChild(newItem);
});
newItem.appendChild(removeTask);
});
<div class="header">
<form>
<h2>Todo App</h2>
<p>Add a new todo</p>
<input type="text" id="input" placeholder="Enter an activity......">
<button type="button" id="add-button">Add Task</button>
</form>
</div>
<ol id="todoList">
<h1>Things to do:</h1>
<div id="counter">0</div>
</ol>
推荐阅读
- c++ - 正方体总是缺少图片中的文本行
- python - AttributeError:模块“tensorflow”没有属性“compat”
- python - 将 JSON 解析为不带前缀的 Pandas
- ruby-on-rails - 葡萄添加新端点
- mongodb - Spring Boot Mongo DB中无法解析的日期错误格式
- sas - 用于内核密度 SAS 的默认值
- node.js - UnhandledPromiseRejectionWarning: 错误: 禁止 SendGrid WebAPI 错误
- docker - 如何在 ecs2 fargate 中通过 docker-compose up 运行 docker
- java - 在 Android 中运行 SQLite 查询
- c++ - 如何移动 QListWidgetItem?