You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

工时记录应用删除Div按钮功能失效问题求助

问题解决:工时记录应用删除按钮失效修复

你的删除按钮失效主要有两个核心问题,直接修正就能解决:

1. HTML按钮的点击绑定错误

删除按钮的onclick属性只写了函数名deleteWorktime,没有触发函数调用,必须加上括号才会执行:

<button id="deletebutton" onclick="deleteWorktime()">Arbeitszeiten löschen</button>

2. 删除函数逻辑完全偏离需求

原来的deleteWorktime函数没有直接执行清空操作,反而给工时容器绑定了点击事件——这意味着只有点击工时列表区域才会删除容器,完全不符合“点击删除按钮清空所有工时”的需求,而且每次点击删除按钮还会重复绑定事件,导致后续操作异常。

正确的逻辑应该是:点击删除按钮时,清空工时容器的内容,同时更新localStorage里的存储数据(不然刷新后数据又会恢复)。注意不要直接删除myWorkingHours容器,否则后续添加工时会失去挂载节点。

修正后的JS代码:

// 显式获取DOM元素,避免依赖全局作用域
const myWorkingHours = document.getElementById('myWorkingHours');
const myDate = document.getElementById('myDate');
const myStartTime = document.getElementById('myStartTime');
const myEndTime = document.getElementById('myEndTime');

// 初始化加载本地存储的工时数据
myWorkingHours.innerHTML = localStorage.getItem('html') || '';

function deleteWorktime() {
  // 清空容器内容
  myWorkingHours.innerHTML = '';
  // 更新localStorage,同步清空存储的HTML
  localStorage.setItem('html', '');
}

function addWorktime() {
  let currentDate = myDate.value;
  let startTime = myStartTime.value;
  let endTime = myEndTime.value;

  // 校验输入完整性,避免添加空条目
  if (!currentDate || !startTime || !endTime) return;

  myWorkingHours.innerHTML +=
    `<div class="list-item">
    <img class="small-img" src="img/Uhr.png">
    ${currentDate} ${startTime} - ${endTime} 
    </div>`;

  localStorage.setItem('html', myWorkingHours.innerHTML);
  
  // 清空输入框,提升操作体验
  myDate.value = '';
  myStartTime.value = '';
  myEndTime.value = '';
}

额外优化点:

  • 显式获取DOM元素,避免隐式全局变量引发的问题
  • 添加输入校验,防止空工时条目被保存
  • 添加输入框清空逻辑,提升用户操作流畅度

完整修正后的代码片段

HTML

<h1>Arbeitszeiten</h1>
<input id="myDate" placeholder="Datum einfügen" type="date">
<input id="myStartTime" placeholder="Startzeit einfügen" type="time">
<input id="myEndTime" placeholder="Endzeit einfügen" type="time">
<button id="addbutton" onclick="addWorktime()">Speichern</button>
<button id="deletebutton" onclick="deleteWorktime()">Arbeitszeiten löschen</button>
<div id="myWorkingHours">
</div>

CSS(无需修改)

body {
  display: flex;
  flex-direction: column;
  gap: 16px;
  background-color: white;
  font-family: "Roboto";
}

#addbutton {
  background-color: rgb(7, 158, 240);
  color: white;
  border: none;
  font-size: 20px;
  padding: 16px;
  cursor: pointer;
}

#deletebutton {
  background-color: red;
  color: white;
  border: none;
  font-size: 20px;
  padding: 16px;
  cursor: pointer;
}

input {
  border: 1px solid rgba(0, 0, 0, 0.12);
  height: 50px;
  border-radius: 8px;
  width: calc(100% - 16px);
}

.list-item {
  background-color: white;
  border: 1px solid rgba(0, 0, 0, 0.12);
  padding: 16px;
  border-radius: 8px;
  font-weight: 60;
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 16px;
}

.small-img {
  width: 24px;
  height: 24px;
}

内容的提问来源于stack exchange,提问作者Rudi Sabri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 05:40:40