| 
	| 
	
	| 
		
	| 
			
			 
			
				05.12.2010, 22:56
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 26.11.2009 
						Сообщений: 204
					 
		
 |  |  
	| 
				Проверка HTML элемента на существование
			 У меня есть код: 
var test = document.getElementById('test_1').innerHTML;
После ещё некоторые действия, так вот, и если элемента с id=test_1 нет, то то что после этой строки "убивается" и скрипт до конца не выполняется. Как проверить на существование этот элемент, чтоб ошибки не было, если этого элемента нет? |  |  
	| 
		
	| 
			
			 
			
				05.12.2010, 23:10
			
			
			
		 |  
	| 
		
			
			| Особый гость     |  | 
					Регистрация: 02.04.2010 
						Сообщений: 4,260
					 
		
 |  |  
	| 
<script type="text/javascript">
window.onload = function(){
    alert(document.getElementById('div').length != 0 ? true : false);
};
</script>
<div id="div"></div>
 |  |  
	| 
		
	| 
			
			 
			
				05.12.2010, 23:27
			
			
			
		 |  
	| 
		
			|  | ⊞ Развернуть       |  | 
					Регистрация: 11.01.2010 
						Сообщений: 1,810
					 
		
 |  |  
	| 
	
 
	| Сообщение от monolithed |  
	| document.getElementById('div').length |  
	
 Что-то? Пахнет бредом  
alert( document.getElementById('div').length )
Достаточно проверки на не null. 
alert( document.getElementById('div') != null )
 |  |  
	| 
		
	| 
			
			 
			
				05.12.2010, 23:50
			
			
			
		 |  
	| 
		
			
			| Особый гость     |  | 
					Регистрация: 02.04.2010 
						Сообщений: 4,260
					 
		
 |  |  
	| 
	
 
	| Сообщение от B@rmaley.e><e |  
	| Что-то? Пахнет бредом |  
	
 Ничего подобного, такой способ определения также имеет место быть, потому как работает корректно
 
Кстати в том же jQuery повсеместно используется аналогичная проверка:
 
$("#div").size()
$("#div").length
$("#div")[0]
 |  |  
	| 
		
	| 
			
			 
			
				06.12.2010, 00:20
			
			
			
		 |  
	| 
		
			|  | Матрос       |  | 
					Регистрация: 04.04.2008 
						Сообщений: 6,246
					 
		
 |  |  
	| 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>
 |  |  
	| 
		
	| 
			
			 
			
				06.12.2010, 00:28
			
			
			
		 |  
	| 
		
			|  | Матрос       |  | 
					Регистрация: 04.04.2008 
						Сообщений: 6,246
					 
		
 |  |  
	| открыл вкладку давно, и не видел ваших  новых сообщений, прежде чем ответить 
	
 
	| Сообщение от B@rmaley.e><e |  
	| Достаточно проверки на не null. |  
	
 даже необходимо. 
потмоу что взятие свойства length у null_объекта - это критическая ошибка о которой говорил ТС
 
	
 
	| Сообщение от monolithed |  
	| Ничего подобного, такой способ определения также имеет место быть, потому как работает корректно |  
	
 нет не работает 
я уже привел пример. 
и это весьма очевидный пример, так что ваша ошибка непростительна. 
вы привели код именно с той проблемой, что просил решить ТС. 
	
 
	| Сообщение от monolithed |  
	| Кстати в том же jQuery повсеместно используется аналогичная проверка: |  
	
 именно поэтому рекомендуется сперва изучить нормально язык, прежде чем лезть изучать фреймворки. 
то, что jQuery сюсюкается с вами как с имбицилом, чтобы вы не дай бог не выстрелили себе в ногу веревкой, это не означает, что JavaScript Изначально такой 
нет, он не такой. |  |  
	| 
		
	| 
			
			 
			
				06.12.2010, 08:19
			
			
			
		 |  
	| 
		
			
			| Особый гость     |  | 
					Регистрация: 02.04.2010 
						Сообщений: 4,260
					 
		
 |  |  
	| 
	
 
	| Сообщение от Gvozd |  
	| потмоу что взятие свойства length у null_объекта - это критическая ошибка о которой говорил ТС |  
	
 Я знаю, что null_объекта нет свойства length, написал бред признаю   потому что:
 
	
 
	| Сообщение от Gvozd |  
	| jQuery сюсюкается с вами как с имбицилом, чтобы вы не дай бог не выстрелили себе в ногу веревкой |  
	
 Переклинело, потому что такую проверку в их справке где-то видел и забылся что: 
	
 
	| Сообщение от Gvozd |  
	| JavaScript Изначально такой нет, он не такой.
 |  
	
 Все мозни проел этим jQuery, потому что на работе запрещено по регламенту писать код на родном, только на этой муте (ни шагу в сторону). Есть повод задуматься о смене работы, где все с точностью наоборот, пока не переклинело еще болше, тьфу))  |  |  
	| 
		
	| 
			
			 
			
				06.12.2010, 16:49
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 26.11.2009 
						Сообщений: 204
					 
		
 |  |  
	| Спасибо |  |  
	| 
		
	| 
			
			 
			
				06.12.2010, 23:18
			
			
			
		 |  
	| 
		
			|  | Матрос       |  | 
					Регистрация: 04.04.2008 
						Сообщений: 6,246
					 
		
 |  |  
	| monolithed,что вам мешает самосовершенствоваться после работы?
 создайте какой-нибудь интересный сервис, и пишите код к нему  на чистом JS =)
 |  |  
	| 
		
	| 
			
			 
			
				06.12.2010, 23:53
			
			
			
		 |  
	| 
		
			
			| Особый гость     |  | 
					Регистрация: 02.04.2010 
						Сообщений: 4,260
					 
		
 |  |  
	| 
	
 
	| Сообщение от Gvozd |  
	| что вам мешает самосовершенствоваться после работы? |  
	
 Положа руку на сердце 99,9% свободного времени я уделяю именно самосовершенствованию своих знаний (даже во сне) 
но к сожалению после работы реально порой переклинивает, т.к. с тем же length у нас в команде регламентированно именно так делать проверку (т.к. помимо меня есть и другие разработчики, которые до меня так писали и будут писать, потому что в jQuery это корректно). 
	
 
	| Сообщение от Gvozd |  
	| создайте какой-нибудь интересный сервис, и пишите код к нему на чистом JS =) |  
	
 В этом направлении я активно работаю, только JS много не бывает)) 
На самом деле я мечтаю сделать какой-нибудь сервис полностью на JS включая серверную часть, но пока что нет идей, если подкинете/намекнете буду признателен. |  |  |  |