Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.10.2012, 15:26
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Передать значение в функцию
Как получить тоже самое, но без eval?
<body>
<script>
	var mas = ['text0', 'text1', 'text2'];
	var len = mas.length;
	for  (var i = 0; i < len; i++) {
		but = document.createElement('button');
		var str = 'but.onclick = function () {\
			alert("' + mas[i] + '");\
		}';
		eval(str);
		but.innerHTML = 'but' + i;
		document.body.appendChild(but);
	}
</script>
Ответить с цитированием
  #2 (permalink)  
Старый 17.10.2012, 16:07
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

Ну можно например так:
<body>
		<script type="text/javascript">
			var mas = ['text0', 'text1', 'text2'];
			for(var i in mas){
				var but = document.createElement('button');
				(function(i){but.onclick = function(){alert(mas[i])}})(i)
				but.innerHTML = 'but' + i;
				document.body.appendChild(but);
			}
		</script>
	</body>
__________________
.
Ответить с цитированием
  #3 (permalink)  
Старый 17.10.2012, 16:16
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от Skipp
Ну можно например так:
гуд
например, значит есть ещё варианты?
Ответить с цитированием
  #4 (permalink)  
Старый 17.10.2012, 16:23
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

Ну можно вообще извращаться по всякому
например так:
<body>
		<script type="text/javascript">
			var mas = ['text0', 'text1', 'text2'];
			Array.prototype.createButton = function(i){
				var but = document.createElement('button') , a = this;
				var func = function(){alert(a[i])};
				but.onclick = func;
				but.innerHTML = 'but' + i;
				document.body.appendChild(but);
			}
			for(var i = 0; i < mas.length; i++) mas.createButton(i);
		</script>
	</body>

или по тупому сделать функцию:
<body>
		<script type="text/javascript">
			var mas = ['text0', 'text1', 'text2'];
			 function createButton(arr, i){
				var but = document.createElement('button');
				var func = function(){alert(arr[i])};
				but.onclick = func;
				but.innerHTML = 'but' + i;
				document.body.appendChild(but);
			}
			for(var i = 0; i < mas.length; i++) createButton(mas, i);
		</script>
	</body>
__________________
.
Ответить с цитированием
  #5 (permalink)  
Старый 17.10.2012, 16:30
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

да, понял мысль, спасибо
Ответить с цитированием
  #6 (permalink)  
Старый 18.10.2012, 21:34
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

http://learn.javascript.ru/closures-usage
http://learn.javascript.ru/task/armiya-funkcij
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ребят как передать значение из php в src название изображения! SpiritDark Элементы интерфейса 4 14.05.2012 14:02
Как передать переменную в функцию с помощью JQuery??? Иван Я Events/DOM/Window 3 20.01.2012 11:21
Как передать в функцию значение а не ссылку на переменную? Ghaniball Общие вопросы Javascript 4 02.09.2011 18:24
Как передать значение по ссылке на другую страницу сайта Rollo Общие вопросы Javascript 7 18.10.2010 15:02
Не получается передать в функцию значение javascript_pupil Events/DOM/Window 9 06.11.2009 15:32