Javascript购物清单声明让

问题描述 投票:0回答:1

为什么当我尝试在全局范围内声明让输入错误(let inputError),就像其他的let一样,或者在函数中的输入错误之前写上let,这个程序就不工作了?

let ul_var; 
let shoppingArray = ["Mleko", "Jajka", "Piwo"]; 
let new_item_form_var;

>>>> let inputError; <<<< //without it works

document.addEventListener("DOMContentLoaded", () => {
  ul_var = document.getElementById("shopping");
  >>>> let <<<< inputError = document.getElementById('inputError');
  new_item_form_var = document.getElementById("new_item_form");


  new_item_form_var.addEventListener("submit", (event) => {
    event.preventDefault();
    let input = event.target.elements[0];

    if (input.value.length > 2 && !input.value.startsWith(' ')) {
      addListItem(input.value);
      input.value = '';
      input.classList.remove('input-danger');
      inputError.innerText = ''; 
    } else {
      inputError.innerText = 'Nazwa nie spelnia kryteriow';
      input.classList.add('input-danger') 
    }
  });

  for (let x of shoppingArray) {
    addListItem(x);
  }

});

function addListItem(y) {
  let li_var = document.createElement("li"); 
  li_var.innerText = y; 
  ul_var.appendChild(li_var);
}
javascript let
1个回答
0
投票

如果你有一个 let inputError 那么你不能有另一个,因为你不能。申报 同一变量多次使用。你应该写。

let inputError;

document.addEventListener("DOMContentLoaded", () => {
  ul_var = document.getElementById("shopping");
  inputError = document.getElementById('inputError'); // no let

或者这样,如果你不使用 inputError 在事件监听器之外。

// no 'let inputError;'

document.addEventListener("DOMContentLoaded", () => {
  ul_var = document.getElementById("shopping");
  let inputError = document.getElementById('inputError');
© www.soinside.com 2019 - 2024. All rights reserved.