【发布时间】:2020-07-29 17:02:11
【问题描述】:
我正在构建自己的待办事项列表 Web 应用程序。我已经设置了一切,但还剩下一件事。我希望如果选中一个复选框,请将其从数组中删除。我怎样才能使用 DOM 或任何东西来做到这一点?我在 stackoverflow 上找到了一些解决方案,但不知道如何将它与我自己的代码一起使用。请帮我 :) enter image description here html:
<%- include("header") -%>
<div class="box hidden" id="heading">
<h1> <%= listTitle %> </h1>
</div>
<div class="box hidden" id="todo">
<% for (i = 0; i < newListItem.length; i++) { %>
<div class="item">
<input type="checkbox" id="remove">
<p> <%= newListItem[i] %> </p>
</div>
<% }; %>
<form class="item" action="/" method="post">
<input type="text" name="newItem" placeholder="New Item" autocomplete="off">
<button type="submit" name="list" value=<%= listTitle %>>+</button>
</form>
</div>
<script type="text/javascript">
//animation
$(document).ready(function () {
$('#heading').fadeIn(1000).removeClass('hidden');
});
$(document).ready(function () {
$('#todo').fadeIn(1000).removeClass('hidden');
});
</script>
<%- include("footer") -%>
app.js:
//jshint esversion:6
const express = require('express');
const bodyParser = require('body-parser');
const date = require(__dirname + '/date.js')
const app = express();
let items = ["Buy Chocolate" , "Heat Chocolate" , "Eat Chocolate"];
let schoolItems = [];
app.set('view engine', 'ejs');
app.use(bodyParser.urlencoded({extended: true}));
app.use(express.static("public"));
app.get("/", function(req, res) {
let day = date.getDate();
res.render("todolist", {
listTitle: day,
newListItem: items
});
});
app.post("/", function (req, res) {
let item = req.body.newItem;
if (req.body.list === "School") {
schoolItems.push(item);
res.redirect("/school");
} else {
items.push(item);
res.redirect("/");
}
})
app.get("/school", function (req, res) {
res.render("todolist", {
listTitle: "School List",
newListItem: schoolItems
});
});
app.get("/about", function (req, res) {
res.render("about");
})
app.listen(3000, function() {
console.log("Server started on port 3000");
})
【问题讨论】:
-
你到底想做什么,如果它只是特定于 UI 的,那么只发布你的 UI 代码,如果它是后端/nodejs 相关的,只发布 nodejs 代码。如果确定问题的范围会容易得多。
-
如果复选框选中了相关项,我希望将其从
items数组中删除,并将其从用户界面中删除。 -
在这种情况下,您必须在服务器端 express 代码中编写一个新路由,并且您还需要更改存储
items的方式,例如,您需要有一个id列表中的每一项。 -
这个范围很广,将问题分解成子问题,如何在 UI 中执行该操作,然后如何将响应发送到后端以同步这是后端数据模型。
标签: javascript html node.js express ejs