Как лучше обойти эту ошибку?

Ryan спросил: 03 ноября 2018 в 08:40 в: javascript

Я читаю Учебник JavaScript. Продолжая, я решил сделать веб-страницу в форме флэш-карт, чтобы обобщить и отработать концепции JS. Каждая концепция JS будет иметь свою собственную HTML-страницу с соответствующими Flash-картами, однако я не хотел создавать отдельную JS-страницу для каждого сценария, поэтому у меня есть только один "main.js", и я создал несколько "onclick" функции событий для каждой флэш-карты, которые при нажатии должны показывать обобщенную информацию и демонстрировать, что делает эта концепция JS.

Тем не менее, когда я сделал свою вторую HTML-страницу и написал сценарий, я наткнулся на эту ошибку: Cannot set property 'onclick' of null После небольшого исследования я обнаружил, что существует некоторый конфликт между сценарием JS на моей первой HTML-странице и второй. На самом деле я не до конца понимаю, что происходит за этой ошибкой, так как я думал, что мои функции не вызываются автоматически, вы должны нажать на карточки для их запуска, поэтому я не знаю, почему функции возвращают "ноль" .

Но в любом случае мне удалось найти обходной путь, обернув все функции в If ("code" !== null), но я хотел знать, есть ли лучший и более эффективный способ сделать это вот полный код:

// UI Functionsif (document.querySelector("#alert") && document.querySelector("#prompt") && document.querySelector("#confirm") !== null) {
  document.querySelector("#alert").onclick = function() {
    window.alert(`Message`);
  }  document.querySelector("#prompt").onclick = function() {
    window.prompt(`What's your name?`, `What's your name?`);
  }  document.querySelector("#confirm").onclick = function() {
    window.confirm(`Do you like learning JavaScript?`);
  }
}// If-Elseif (document.querySelector("#ifelse") !== null) {
  document.querySelector("#ifelse").onclick = function() {
    const age = window.prompt(`How old are you?`);    if (age < 3) {
      window.alert(`Hi, baby! Your age is ${age}`);
    } else if (age < 18) {
      window.alert(`Hello! Your age is ${age}`);
    } else if (age < 100) {
      window.alert(`Greetings! Your age is ${age}`);
    }
    else {
      window.alert(`What an unusual age! Your age is ${age}`);
    }
  }
}

0 ответов