我正在制作一个列表,我将所有内容都预置到 HTML 上,但现在我试图通过点击按钮来删除它们。 我遇到的问题是在按钮前面。 我相信我可以使用此截图未包含的逻辑删除它,但有关如何创建按钮的任何帮助将不胜感激。
window.onload = function() {
//user clicked on the add button in the to-do field add that text into the to-do text
$('#add-to-do').on('click', function(event) {
event.preventDefault();
//assign variable to the value entered into the textbox
var value = document.getElementById('to-do').value;
//test value
console.log(value);
//prepend values into the html and add checkmark, checkbox, and line break to make list
var linebreak = "<br/>";
var todoclose = $("<button>");
console.log(todoclose);
todoclose.attr("data-to-do", toDoCount);
todoclose.addClass("checkbox");
todoclose.text("☑");
$("#to-dos").prepend(todoclose + value + linebreak);
});
下面是一个
HTML <div class ="col-4">
<!-- To Do List -->
<form onsubmit= "return false;">
<span id = "todo-item" type = "text">
<h4>Add your Agenda Here</h4>
<input id ="to-do" type = "text">
<input id ="add-to-do" value = "Add Item" type = "submit">
</span>
</form>
<div id="to-dos"></div>
</div>
错误在这里:
todoclose + value + linebreak
todoclose
是对象,value
是字符串,linebreak
是字符串。这意味着在该代码的第一部分中,您将添加一个带有字符串 ( value
) 的对象 ( todoclose
)。
将 Object 添加到字符串时,JavaScript 引擎会调用对象的 toString
方法,首先将其转换为字符串,然后将结果添加到另一个字符串。大多数对象上的 toString
方法打印[object Object]
(这不是很有用)。
要修复它,您可以一次将它们放在一个前面(按相反顺序),而不是使用 +
将它们加在一起:
$("#to-dos").prepend(linebreak);
$("#to-dos").prepend(value);
$("#to-dos").prepend(todoclose);