删除选中的复选框
Remove checked checkboxes
我正在制作一个待办事项列表,我希望能够在其中添加新任务,并删除已签出的任务。然而,我的函数似乎只是删除所有任务,而不仅仅是已签出任务。它似乎也不允许添加新任务。
html:
<h1 id="title"> To-do list</h1>
<div id="task_area">
</div>
<input type="text" id="putin"></input>
<button id="add">add</button>
javascript:
<button id="clear">Clear completed tasks</button>
var tasks = document.getElementById("task_area")
var new_task = document.getElementById("add")
var clear = document.getElementById("clear")
new_task.addEventListener("click", function() {
var putin = document.getElementById("putin")
var input = document.createElement('input')
input.type = "checkbox"
var label = document.createElement('label')
label.appendChild(document.createTextNode(putin.value))
task_area.appendChild(input)
task_area.appendChild(label)
})
clear.addEventListener("click", function() {
for (i = 0; i < task_area.children.length; i++) {
if (task_area.children[i].checked === true) {
task_area.remove(tasks.children[i])
}
}
})
jsfiddle:https://jsfiddle.net/4coxL3um/
.remove
删除要从中调用它的元素,并且不接受要删除内容的参数。以下内容:
task_area.remove(tasks.children[i])
应该是
tasks.children[i].remove()
编辑:正如Mononess在下面评论的那样,这只会删除复选框,而不会删除标签。虽然您可以使用下面Jayesh Goyani的答案删除这两个,但最好将每个输入/标签对封装在一个div或span中,以便于管理。
您可以尝试为调用以下函数的task_area的每个子级添加一个事件侦听器。还没有机会测试它,可能无法满足你的所有要求,但应该完成任务。
function removeClicked() {
this.parentNode.removeChild(this);
}
请尝试使用以下代码片段。下面的代码将帮助您删除带有标签的选中复选框。
<body>
<h1 id="title">To-do list</h1>
<div id="task_area">
</div>
<input type="text" id="putin" />
<button id="add">add</button>
<button id="clear">Clear completed tasks</button>
<script>
var tasks = document.getElementById("task_area")
var new_task = document.getElementById("add")
var clear = document.getElementById("clear")
new_task.addEventListener("click", function () {
var putin = document.getElementById("putin")
var input = document.createElement('input')
input.type = "checkbox"
var label = document.createElement('label')
label.appendChild(document.createTextNode(putin.value))
task_area.appendChild(input)
task_area.appendChild(label)
//document.getElementById("task_area").innerHTML = putin.value
})
clear.addEventListener("click", function () {
for (i = 0; i < task_area.children.length; i++) {
if (task_area.children[i].checked === true) {
tasks.children[i].nextSibling.remove();
tasks.children[i].remove();
}
}
})
</script>
</body>
如果有任何问题,请告诉我。
相关文章:
- 如何删除'被按压'state from复选框
- 通过选中和取消选中复选框来添加和删除数组中的值
- 取消选中复选框时,从收音机中删除“选中”
- 基于复选框切换删除多边形
- 取消选中特定复选框时,React切换不删除的选择字段
- 单击删除时,从表中删除与选定复选框相对应的行
- 添加和删除复选框,取决于输入值
- Knockoutjs通过选中复选框来删除多个
- Twitter引导程序:删除/切换类似复选框的按钮组的活动状态
- 在复选框取消选中事件中从HTML下拉列表中删除项目
- 通过选中复选框删除多行
- 如何禁用和启用删除按钮,如果未在 GridView 中选中复选框由 Jquery
- 选中复选框时用 innerHTML 添加的文本,取消选中时不会删除
- 如何使用 javascript 删除复选框
- 如何在 JSP 中的“单击”复选框时创建删除按钮
- 使用jquery选中/取消选中复选框添加/删除值
- Salesforce-使用jQuery使用复选框删除表行
- 使用复选框删除本地内存中存储的项目Jquery
- 使用php或javascript中的复选框删除
- OpenLayers复选框删除标签