Проверка 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, время: 04:28. |