因此,我为一个项目创建了一个工作日调度程序,iv设法在一天中的时间内添加了颜色阻塞,但我有真正的问题让本地存储在文本输入(例如:当我键入一个句子到一个时间块,我希望它保存,然后坚持重新加载页面),任何帮助,我做错了,或任何建议如何使这项工作将不胜感激。
const clock = document.getElementById("clock");
setInterval(() => {
const now = moment();
const readable = now.format("dddd, MMMM Do YYYY, h:mm:ss a");
clock.textContent = readable;
}, 1000);
// $(document).ready(function () {
var saveBtn = document.querySelectorAll(".saveBtn");
saveBtn.forEach(function(node) {
node.addEventListener("click", function() {
var description = $(this).siblings(".description").val();
var time = $(this).parent().attr("id");
localStorage.setItem(time, description);
})
});
$("#hour1 .description").val(localStorage.getItem("hour1"));
$("#hour2 .description").val(localStorage.getItem("hour2"));
$("#hour3 .description").val(localStorage.getItem("hour3"));
$("#hour4 .description").val(localStorage.getItem("hour4"));
$("#hour5 .description").val(localStorage.getItem("hour5"));
$("#hour6 .description").val(localStorage.getItem("hour6"));
$("#hour7 .description").val(localStorage.getItem("hour7"));
$("#hour8 .description").val(localStorage.getItem("hour8"));
$("#hour9 .description").val(localStorage.getItem("hour9"));
$("#hour10 .description").val(localStorage.getItem("hour10"));
var elements = $(".time-block");
var d = new Date();
var h = d.getHours();
for (i = 0; i < elements.length; i++) {
var t = parseInt(elements[i].getAttribute("data-hour"));
if (h < t) {
elements[i].classList.add('future');
elements[i].classList.remove('past');
elements[i].classList.remove('present');
} else if (h > t) {
elements[i].classList.add('past');
elements[i].classList.remove('future');
elements[i].classList.remove('present');
} else if (h === t) {
elements[i].classList.add('present');
elements[i].classList.remove('future');
elements[i].classList.remove('past');
} else if (h > 16 && h < 9) {
elements[i].classList.add('future');
elements[i].classList.remove('past');
elements[i].classList.remove('present');
}
}body {
font-family: 'Open Sans', sans-serif;
font-size: 16px;
line-height: 1;
}
textarea {
background: transparent;
border: none;
resize: none;
color: #000000;
border-left: 1px solid black;
padding: 10px;
}
.jumbotron {
text-align: center;
background-color: transparent;
color: black;
border-radius: 0;
border-bottom: 10px solid black;
}
.description {
white-space: pre-wrap;
}
.time-block {
text-align: center;
border-radius: 15px;
}
.row {
white-space: pre-wrap;
height: 80px;
border-top: 1px solid white;
}
.hour {
background-color: #ffffff;
color: #000000;
border-top: 1px dashed #000000;
}
.past {
background-color: #d3d3d3;
color: white;
}
.present {
background-color: #ff6961;
color: white;
}
.future {
background-color: #77dd77;
color: white;
}
.saveBtn {
border-left: 1px solid black;
border-top-right-radius: 15px;
border-bottom-right-radius: 15px;
background-color: #06aed5;
color: white;
}
.saveBtn i:hover {
font-size: 20px;
transition: all 0.3s ease-in-out;
}<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" />
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css"
integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous" />
<link href="https://fonts.googleapis.com/css?family=Open+Sans&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="./styles/style.css" />
<title>Work Day Scheduler</title>
<header class="jumbotron">
<h1 class="display-3">Work Day Scheduler</h1>
<p class="lead">A simple calendar app for scheduling your work day</p>
<p id="currentDay" class="lead"></p>
<div id="clock"></div>
</header>
</head>
<body>
<div class="container">
<!-- Timeblocks go here -->
<div id ="hour-1" data-hour="8" class = "row time-block">
<div class="col-1 hour">
8AM
</div>
<textarea id ="8AM" class="col-md-10 description">
</textarea>
<button class="col-1 saveBtn btn"><i class="fas fa-save"></i></button>
</div>
<div id ="hour-2" data-hour="9" class = "row time-block">
<div class="col-md-1 hour">
9AM
</div>
<textarea id="9AM" class="col-md-10 description">
</textarea>
<button class="col-1 saveBtn btn"><i class="fas fa-save"></i></button>
</div>
<div id ="hour-3" data-hour="10" class = "row time-block">
<div class="col-md-1 hour">
10AM
</div>
<textarea id="10AM" class="col-md-10 description">
</textarea>
<button class="col-1 saveBtn btn"><i class="fas fa-save"></i></button>
</div>
<div id ="hour-4" data-hour="11" class = "row time-block">
<div class="col-md-1 hour">
11AM
</div>
<textarea id ="11AM" class="col-md-10 description">
</textarea>
<button class="col-1 saveBtn btn"><i class="fas fa-save"></i></button>
</div>
<div id ="hour-5" data-hour="12" class = "row time-block">
<div class="col-md-1 hour">
12PM
</div>
<textarea id ="12PM" class="col-md-10 description">
</textarea>
<button class="col-1 saveBtn btn"><i class="fas fa-save"></i></button>
</div>
<div id ="hour-6" data-hour="13" class = "row time-block">
<div class="col-md-1 hour">
1PM
</div>
<textarea id="1PM" class="col-md-10 description">
</textarea>
<button class="col-1 saveBtn btn"><i class="fas fa-save"></i></button>
</div>
<div id ="hour-7" data-hour="14" class = "row time-block">
<div class="col-md-1 hour">
2PM
</div>
<textarea id="2PM" class="col-md-10 description">
</textarea>
<button class="col-1 saveBtn btn"><i class="fas fa-save"></i></button>
</div>
<div id ="hour-8" data-hour="15" class = "row time-block">
<div class="col-md-1 hour">
3PM
</div>
<textarea id="3PM" class="col-md-10 description">
</textarea>
<button class="col-1 saveBtn btn"><i class="fas fa-save"></i></button>
</div>
<div id ="hour-9" data-hour="16" class = "row time-block">
<div class="col-md-1 hour">
4PM
</div>
<textarea id="4PM" class="col-md-10 description">
</textarea>
<button class="col-1 saveBtn btn"><i class="fas fa-save"></i></button>
</div>
<div id ="hour-10" data-hour="17" class = "row time-block">
<div class="col-md-1 hour">
5PM
</div>
<textarea id="5PM" class="col-md-10 description">
</textarea>
<button class="col-1 saveBtn btn"><i class="fas fa-save"></i></button>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
<script src="./script.js"></script>
</body>
</html>
发布于 2022-09-01 08:36:00
在这个街区:
var saveBtn = document.querySelectorAll(".saveBtn");
saveBtn.forEach(function(node) {
node.addEventListener("click", function() {
var description = $(this).siblings(".description").val();
var time = $(this).parent().attr("id");
localStorage.setItem(time, description);
})
});您使用一个键存储在本地存储中,该键是按钮的父节点的id,即hour-1.hour-2。等
然后在这里:
$("#hour1 .description").val(localStorage.getItem("hour1"));您正在尝试设置.description of #hour1 的值,该值不存在来自本地存储键(不存在的 (hour1)的)。
因此,为了解决这个问题,只需选择正确的元素$("#hour-1 .description").val(localStorage.getItem("hour-1"));
在执行步骤和寻求帮助之前,一定要自己调试一下,例如,如果在将console.log(time, description)设置为本地存储之后,它会立即给出错误原因。
https://stackoverflow.com/questions/73565932
复制相似问题