Доп. условие на js

165
19 октября 2018, 07:30

День добрый! Подскажите, есть код

if (location.search.startsWith('ссылка на страницу')) { 
	document.getElementById('id_div_name').style.display = 'none' 
} else { 
	document.getElementById('id_div_name').style.display = 'block' 
}

И вылетает ошибка на станицах, где нет "id_div_name" .Как это исправить?

Uncaught TypeError: Cannot read property 'style' of null at eval (eval at

Answer 1

if (location.search.startsWith('ссылка на страницу')) { 
  setDisplay('none'); 
} else { 
  setDisplay('block'); 
} 
 
function setDisplay(attrName) { 
  if (document.getElementById('id_div_name')) { 
    document.getElementById('id_div_name').style = 'display: ' + attrName; 
  } 
}
<div id="id_div_name">Элемент</div>

Answer 2

const element = document.getElementById('id_div_name'); // закешируем переменную 
 
if(element) { 
  // прям оч коротко 
  element.style.display = location.search.startsWith('ссылка на страницу') ? 
    'none': 
    'block'; 
}
#id_div_name { 
  width: 300px; 
  height: 100px; 
  background: #333; 
  display: none; 
}
<div id='id_div_name'></div>

getElementById вернет null, если такого элемент нет на странице, поэтому простая проверка if(element) подойдет

Еще один вариант проверки

if(element !== null) // тоже пойдет
READ ALSO
Не запускается gulp browser-sync

Не запускается gulp browser-sync

Вот делаю по оф докам

211
Как узнать размер кэша браузера через javascript/jquery?

Как узнать размер кэша браузера через javascript/jquery?

Имеется ссылка, при нажатии, у пользователя грузиться файл с сервера, можно ли как то узнать размер кэша у браузера через javascript/jquery, после...

174
Публикация записей через Facebook JS API

Публикация записей через Facebook JS API

Товарищи, как заставить ФБ делать записи используя их же апиУ меня просто не хочет выполняться авторизация при вставленном примере их кода

158
Javascript drag and drop: изображение при перетягивании

Javascript drag and drop: изображение при перетягивании

Доброе время суток, во время перетаскивания какого-либо объекта при помощи встроенной функции draggable='true' мы тянем его представление, изображение...

199