【发布时间】:2021-12-11 20:45:43
【问题描述】:
我正在尝试为待办事项列表制作一个网站原型,以使用 JavaScript 尝试新事物。
function task() {
//Create checkbox
var x = document.createElement("INPUT");
x.setAttribute("type", "checkbox");
//Create <br>
lineBreak = document.createElement("br");
//Create <p> element
var todo = document.createElement("p");
//Insert in <p> the text in the input box
todo.innerText = document.getElementById("task").value;
//Create the <p>checkbox+text</p><br> on every botton click
return document.body.appendChild(x) + document.body.appendChild(todo) + document.body.appendChild(lineBreak);
document.querySelector('#reset').addEventListener('click', () => {
document.getElementById('reset').clicked
});
}
//Show Reset button on task generated
document.querySelector('#go').addEventListener('click', () => {
document.getElementById("reset").style.visibility = "visible";
});
p {
display: inline;
}
img {
width: 30px;
display: inline;
}
#reset {
visibility: hidden;
}
<h1>To-Do List</h1>
<input type="text" placeholder="Write a Task" id="task"><button id="go" onclick="task()">GO</button>
<hr>
<body>
<section>
<button id="reset">RESET</button>
</section>
</body>
正如您从代码和指示的 if 语句中看到的那样,我能够为每次单击 go 按钮(在 HTML 中定义)生成新的<p></p>。
它成功生成了一个复选框,旁边是在文本框中键入的文本,然后用<br> 换行。
我试图消除按重置按钮生成的元素,但尽管尝试了多种解决方案,但似乎唯一可行的方法是删除正文的所有内容。
您能否提出一个解决方案以使其正常工作?
【问题讨论】:
-
document.getElementById('reset').clicked将始终返回undefined。我没有看到你在任何地方设置它。可证明您打算附加一个点击处理程序? -
我想清除通过单击重置按钮生成的所有
元素。重置按钮在html中是这样定义的:
-
您是否尝试过像我上面建议的那样附加点击处理程序?我认为很明显,当您单击按钮时,您正在尝试删除 HTML 元素?
-
我好像没看懂,这是作品codepen.io/honeygrim/pen/eYEvgQb的codepen@
-
您从未发送过运行代码的链接。你甚至读过我发布的文章吗? StackOverflow 中的一个例子更容易处理。我会将您的外部链接移至您的问题,以便其他人可以尝试提供帮助。我自己已经在一个问题上花费了太多时间。
标签: javascript jquery button appendchild createelement