| 
	| 
	
	| 
		
	| 
			
			 
			
				13.07.2012, 09:56
			
			
			
		 |  
	| 
		
			
			| Новичок на форуме       |  | 
					Регистрация: 13.07.2012 
						Сообщений: 5
					 
		
 |  |  
	| 
				при нажатии на <a.. потеряется
			 Здравствуйте.Подскажите, пожалуйстаздесь все отлично работает, но сам тега <a> id name lastname vozrastпотеряется
 <script type="text/javascript">
 
 var user = [[1,'name1', 'lastname1', 'vozrast1'],[2, 'name2', 'lastname2', 'vozrast2'],[3, 'name3', 'lastname3', 'vozrast3']];
 function fff(i){
 
 
 function sName(a, b) {
 if (a[i] > b[i]) return 1;
 else if (a[i] < b[i]) return -1;
 else return 0;
 
 }user.sort(sName);
 
 document.write(user[0]+"<br>"+user[1]+"<br>"+user[2]);
 reset;
 }
 </script>
 
 <a href="#" onClick="fff(0)">id</a>
 <a href="#" onClick="fff(1)">name</a>
 <a href="#" onClick="fff(2)">lastname</a>
 <a href="#" onClick="fff(3)">vozrast</a>
 |  |  
	| 
		
	| 
			
			 
			
				13.07.2012, 10:07
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 03.05.2011 
						Сообщений: 848
					 
		
 |  |  
	| 
	
 
	| Сообщение от f-mobile   |  
	| Здравствуйте.Подскажите, пожалуйста здесь все отлично работает, но сам тега <a> id name lastname vozrastпотеряется
 <script type="text/javascript">
 
 var user = [[1,'name1', 'lastname1', 'vozrast1'],[2, 'name2', 'lastname2', 'vozrast2'],[3, 'name3', 'lastname3', 'vozrast3']];
 function fff(i){
 
 
 function sName(a, b) {
 if (a[i] > b[i]) return 1;
 else if (a[i] < b[i]) return -1;
 else return 0;
 
 }user.sort(sName);
 
 document.write(user[0]+"<br>"+user[1]+"<br>"+user[2]);
 reset;
 }
 </script>
 
 <a href="#" onClick="fff(0)">id</a>
 <a href="#" onClick="fff(1)">name</a>
 <a href="#" onClick="fff(2)">lastname</a>
 <a href="#" onClick="fff(3)">vozrast</a>
 |  
	
 задача не ясна, что значит "но сам тега <a> id name lastname vozrastпотеряется"
ааа...понял...ну метод write  полностью переписывает содержимое страницы , используйте методы DOM или innerHTML  какого-нибудь тега (например, span или div) 
и что такое reset;  в функции fff()  ?			 Последний раз редактировалось lord2kim, 13.07.2012 в 10:10.
 |  |  
	| 
		
	| 
			
			 
			
				13.07.2012, 10:28
			
			
			
		 |  
	| 
		
			
			| Новичок на форуме       |  | 
					Регистрация: 13.07.2012 
						Сообщений: 5
					 
		
 |  |  
	| reset это пи нажатии  id  или name .. сортируется список и снова показывает. я думал нужна [i]reset[/Iесли вам нетрудно напишите как менять write на innerHTML
 |  |  
	| 
		
	| 
			
			 
			
				13.07.2012, 11:16
			
			
			
		 |  
	| 
		
			|  | Студент       |  | 
					Регистрация: 30.04.2012 
						Сообщений: 1,113
					 
		
 |  |  
	| 
	
 
	| Сообщение от f-mobile   |  
	| если вам нетрудно напишите как менять write на innerHTML |  
	
 
document.body.innerHTML+=user[0]+"<br>"+user[1]+"<br>"+user[2];
 
но лучше с помощью appendChild			 Последний раз редактировалось vadim5june, 13.07.2012 в 13:06.
 |  |  
	| 
		
	| 
			
			 
			
				13.07.2012, 11:52
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 31.05.2012 
						Сообщений: 396
					 
		
 |  |  
	| 
	
 
	| Сообщение от vadim5june |  
	| 
document.body.innerHTML+=user[0]+"<br>"+user[1]+"<br>"+user[2];
 |  
	
 Так писать обычно не очень хорошо с точки зрания быстродействия, так как эта инструкция считывает всё содержимое <body> и записывает его снова. Лучше для этого использовать appendChild. |  |  
	| 
		
	| 
			
			 
			
				13.07.2012, 13:08
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 22.03.2012 
						Сообщений: 3,744
					 
		
 |  |  
	| И дело не только в этом, в примере ниже обработчик кнопки сработает только один раз (как объяснить этот эффект, сам хотел бы узнать) 
<body>
<button id="button">click</button><br>
<script>
document.body.onclick = function () {
  this.innerHTML += 'text<br>'
}
document.getElementById('button').onclick = function () {
  alert('click')
}
</script>
</body>
 |  |  
	| 
		
	| 
			
			 
			
				13.07.2012, 13:19
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 03.05.2011 
						Сообщений: 848
					 
		
 |  |  
	| 
	
 
	| Сообщение от bes   |  
	| И дело не только в этом, в примере ниже обработчик кнопки сработает только один раз (как объяснить этот эффект, сам хотел бы узнать) 
 
<body>
<button id="button">click</button><br>
<script>
document.body.onclick = function () {
  this.innerHTML += 'text<br>'
}
document.getElementById('button').onclick = function () {
  alert('click')
}
</script>
</body>
 |  
	
 а так и не нужно делать) для подобных целей придумали div иspan ))) |  |  
	| 
		
	| 
			
			 
			
				13.07.2012, 13:25
			
			
			
		 |  
	| 
		
			|  | Студент       |  | 
					Регистрация: 30.04.2012 
						Сообщений: 1,113
					 
		
 |  |  
	| 
	
 
	| Сообщение от bes   |  
	| И дело не только в этом, в примере ниже обработчик кнопки сработает только один раз (как объяснить этот эффект, сам хотел бы узнать) |  
	
 Да вобщем то innerHTML+ это зло -можно использовать только в самых простых случаях и если нет событий 
строка document.body.innerHTML+='tratata'; 
выполняется как document.body.innerHTML='tratata'+document.body.in  nerHTML; 
то есть вся страница (body) формируется снова-а так как справа в document.body.innerHTML события не входят то они теряются 
а если бы Вы написали
  
<button onclick=alert(3)></button>
 
то сохранилось бы			 Последний раз редактировалось vadim5june, 13.07.2012 в 13:31.
 |  |  
	| 
		
	| 
			
			 
			
				13.07.2012, 13:35
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 22.03.2012 
						Сообщений: 3,744
					 
		
 |  |  
	| 
	
 
	| Сообщение от lord2kim |  
	| а так и не нужно делать) для подобных целей придумали div и span))) |  
	
 Хотелось бы понимать, как это работает: скрипт на странице остается, обработчик onclick у body остаётся и работает, обработчик onclick у кнопки остаётся и не работает (но если задать через атрибут onclick, то будет работать)
 
	
 
	| Сообщение от vadim5june |  
	| document.body.innerHTML события не входят то они теряются |  
	
 как понимать "не входят"
 
	
 
	| Сообщение от vadim5june |  
	| document.body.innerHTML='tratata'+document.body.in nerHTML |  
	
 'tratata' справа от + |  |  
	| 
		
	| 
			
			 
			
				13.07.2012, 13:42
			
			
			
		 |  
	| 
		
			|  | Студент       |  | 
					Регистрация: 30.04.2012 
						Сообщений: 1,113
					 
		
 |  |  
	| 
	
 
	| Сообщение от bes   |  
	| как понимать "не входят" |  
	
 в innerHTML входит все что видно нам по alert(document.body.innerHTML) 
таким образом все обработчики которые мы сделали скриптами там не видны и не войдут в страницу когда мы будем использовать innerHTML+ а войдут только те обработчики которые мы написали на странице 
<button onclick=... 
---- 
'tratata' справа от + 
да			 Последний раз редактировалось vadim5june, 13.07.2012 в 13:51.
 |  |  |  |