javascript - 错误: deleteItem function is not defined in my script

标签 javascript

我在 JavaScript 中编写了一个待办事项列表,但此代码不起作用并显示 deleteItem() 未定义错误。我在codepen中测试了它,它工作正常。

window.onload = function () {
let ourForm = document.getElementById("ourform");
let ourField = document.getElementById("todo");
let ourList = document.getElementById("list");

ourForm.addEventListener("submit", e => {
    e.preventDefault();
    createItem(ourField.value);
});

function createItem(x) {
    let ourHtml = `<li>${x}<button onclick="deleteItem(this)">Delete</button></li>`;
    ourList.insertAdjacentHTML("beforeend", ourHtml);
    ourField.value = "";
    ourField.focus();
}

function deleteItem(elementToDelete) {
    elementToDelete.parentElement.remove();
}

}

<h1>NEED-TO-DO APP</h1>
<form id="ourform">
    <input id="todo" type="text" autocomplete="off">
    <button>Create Item</button>
</form>
<h3>Need To Do</h3>
<ul id="list">
</ul>

我的脚本有什么问题..

最佳答案

尝试将 deleteItem 函数复制到 window.onload 函数之外,因为目前无法访问作用域。

  window.onload = function () {
    let ourForm = document.getElementById("ourform");
    let ourField = document.getElementById("todo");
    let ourList = document.getElementById("list");

    ourForm.addEventListener("submit", e => {
      e.preventDefault();
      createItem(ourField.value);
    });

    function createItem(x) {
      let ourHtml = `<li>${x}<button onclick="deleteItem(this)">Delete</button></li>`;
      ourList.insertAdjacentHTML("beforeend", ourHtml);
      ourField.value = "";
      ourField.focus();
    }

  }
  function deleteItem(elementToDelete) {
    elementToDelete.parentElement.remove();
  }

关于javascript - 错误: deleteItem function is not defined in my script,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58872611/

相关文章:

javascript - 如何将自定义模板与 Meteor AutoForm 中的模式匹配?

javascript - 如何获取空的 href 查询参数?

javascript - 相对定位元素内的绝对定位元素被剪裁

javascript - 如何使用 jquery 简化我的代码?

javascript - 从中心开始的 SVG 比例组

javascript - 如何修复从轮播中添加和删除元素的代码?

php - 在居中的弹出窗口中打开表单提交的消息

javascript - 如果我有一项,如何从选项菜单中选择一项

javascript - AJAX/Javascript 在表单中然后提交

javascript - 单击文本框内的元素 HTML 不起作用