我将为您翻译以下内容:
我正在尝试使用JavaScript创建一个简单的待办事项列表。基本上,您在输入框中输入一个项目,它会被添加到列表中,如果完成了,您可以点击它,然后它会被划掉。如果您单击已经划掉的列表,那么它将被移除。但是,虽然删除一行可以正常工作,但是划掉一行却没有起作用。
HTML:
<div><input type="text" value="" id="new_task"><button id="add_task">Add Task</button></div>
<ul id="tasks">
<li class="completed selected">One Task</li>
<li>Two Task</li>
</ul>
CSS:
<style type="text/css" media="screen">
/*local styles if any (quick tests and local only overrides)*/
#tasks li{
list-style: none;
}
#tasks .selected{
list-style: disc;
}
.completed{
text-decoration: line-through;
}
</style>
JavaScript:
<script type="text/javascript" charset="utf-8">
var inputField = document.querySelector("#new_task");
var myButton = document.querySelector("#add_task");
var taskList = document.querySelector("#tasks");
var newList = document.createElement("li");
var completeTask = document.querySelector("li.completed.selected");
var incompleteTask = document.querySelector("li:not([class])");
myButton.onclick = function() {
taskList.appendChild(newList);
newList.innerHTML = inputField.value;
inputField.value = "";
}
completeTask.onclick = function() {
event.target.classList.remove("completed","selected");
}
incompleteTask.onclick = function() {
event.target.classList.add("completed","selected");
}
</script>
classList
不支持 IE9 及以下版本。我猜这不是你正在使用的吧?因为event
关键字看起来很可疑... - MaxArtincompleteTask
是否确实引用了您认为的元素。有可能是在 DOM 加载完成之前进行了选择。 - Boazdocument.querySelectorAll(selector)
是否选择了正确的元素。 - Shivam Jha