Всегда получаю ошибку «Не удается прочитать свойство ‘style’ null», и я не понимаю почему

#javascript #html

#javascript #HTML

Вопрос:

Мой HTML-файл

   <span id="menu_start_random">Random</span>
  <span id="menu_start_prop">Custom</span>
  

Мой файл .js

 function menuToggle(action, id) {
  switch (action) {
    case true:
      document.getElementById(id).style.display = 'block';
      break;
    case false:
      document.getElementById(id).style.display = 'none';
      break;
  }
}

function doIt(mode)
{
  switch (mode) {
    case "random":
      menuToggle(false, "menu_start_custom");
      break;

    case "custom":
      menuToggle(false, "menu_start_prop");
      break;
  }
}
  

Когда я теперь вызываю функцию, doIt("random") я всегда получаю ошибку «Не удается прочитать свойство ‘style’, равное null» по какой-либо причине, но doIt("custom") работает точно так, как планировалось. Кто-нибудь может мне здесь помочь?

Комментарии:

1. Вы ищете элемент с идентификатором «menu_start_custom» … И в вашем html нет соответствующего элемента с таким идентификатором

Ответ №1:

Потому что у вас нет menu_start_custom элемента.

 function menuToggle(action, id) {
  switch (action) {
    case true:
      document.getElementById(id).style.display = 'block';
      break;
    case false:
      document.getElementById(id).style.display = 'none';
      break;
  }
}

function doIt(mode)
{
  switch (mode) {
    case "random":
      menuToggle(false, "menu_start_custom");
      break;

    case "custom":
      menuToggle(false, "menu_start_prop");
      break;
  }
}  
 <span id="menu_start_custom">Random</span>
<span id="menu_start_prop">Custom</span>  

Ответ №2:

В вашем html

 <span id="menu_start_random">Random</span>
  

И в вашем js

 menuToggle(false, "menu_start_custom");
  

Итак, menu_start_custom не существует