Проверка HTML элемента на существование
У меня есть код:
var test = document.getElementById('test_1').innerHTML; После ещё некоторые действия, так вот, и если элемента с id=test_1 нет, то то что после этой строки "убивается" и скрипт до конца не выполняется. Как проверить на существование этот элемент, чтоб ошибки не было, если этого элемента нет? |
<script type="text/javascript"> window.onload = function(){ alert(document.getElementById('div').length != 0 ? true : false); }; </script> <div id="div"></div> |
Цитата:
alert( document.getElementById('div').length )Достаточно проверки на не null. alert( document.getElementById('div') != null ) |
Цитата:
Кстати в том же jQuery повсеместно используется аналогичная проверка: $("#div").size() $("#div").length $("#div")[0] |
monolithed,
сделайте мои глаза разувидеть ваш код. почему вы написали эту хуйню, и показали ее всем. наш ресурс, между прочим даже дети читают <script type="text/javascript"> window.onload = function(){ alert(document.getElementById('div').length != 0 ? true : false); alert(document.getElementById('nonexistent_div').length != 0 ? true : false);//и тут скрипт вроде как неожиданно упал =) }; </script> <div id="div"></div> document.getElementById возвращает единственный элемент, а не массив, и унего не может быть свойства length(которое в приведенном вами коде равно undefined, что не есть равно 0) вот так вот верно: <script type="text/javascript"> window.onload = function(){ alert(document.getElementById('div') != null ? true : false); alert(document.getElementById('nonexistent_div') != null ? true : false); }; </script> <div id="div"></div> |
открыл вкладку давно, и не видел ваших новых сообщений, прежде чем ответить
Цитата:
потмоу что взятие свойства length у null_объекта - это критическая ошибка о которой говорил ТС Цитата:
я уже привел пример. и это весьма очевидный пример, так что ваша ошибка непростительна. вы привели код именно с той проблемой, что просил решить ТС. Цитата:
то, что jQuery сюсюкается с вами как с имбицилом, чтобы вы не дай бог не выстрелили себе в ногу веревкой, это не означает, что JavaScript Изначально такой нет, он не такой. |
Цитата:
Цитата:
Цитата:
|
Спасибо
|
monolithed,
что вам мешает самосовершенствоваться после работы? создайте какой-нибудь интересный сервис, и пишите код к нему на чистом JS =) |
Цитата:
но к сожалению после работы реально порой переклинивает, т.к. с тем же length у нас в команде регламентированно именно так делать проверку (т.к. помимо меня есть и другие разработчики, которые до меня так писали и будут писать, потому что в jQuery это корректно). Цитата:
На самом деле я мечтаю сделать какой-нибудь сервис полностью на JS включая серверную часть, но пока что нет идей, если подкинете/намекнете буду признателен. |
Часовой пояс GMT +3, время: 06:44. |