Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   запись в input значения сгенерированного div (https://javascript.ru/forum/jquery/61675-zapis-v-input-znacheniya-sgenerirovannogo-div.html)

Vincent Vega 02.03.2016 03:15

запись в input значения сгенерированного div
 
HELP!

есть гавнокод: который генерирует блок опций:
$("input[name='opt']").click(function(){
		var inp = $(this);
		var elems = $(this).attr('id');
		var opti = $('div.wrapp_option');
		$(opti).fadeOut(200);
		setTimeout(function(){
		opti = 
			$('<div/>',{class:'wrapp_option',id:elems}).appendTo('td.slot#'+elems).fadeIn(300);
			$('<div/>',{class:'mah',id:'confirm',text:'Подтвердить'}).css({'display':'block'}).appendTo(opti);
			$('<div/>',{class:'mah',id:'deconfirm',text:'Отменить'}).appendTo(opti);
			$('<div/>',{class:'mah',id:'upd',text:'Обновить'}).appendTo(opti);
			$('<div/>',{class:'mah',id:'del',text:'Удалить'}).appendTo(opti);
			$('<div/>',{class:'mah',id:'by',text:'Передать'}).appendTo(opti);
		},200);
	});


есть второй такойже г.код с которого нужно втыкать значения:

так не втыкаются,
$('.slot').on('click','.mah',function(){
                var blok = $(this);
		var vals = $(this).attr('id');
		var idn = $('div.wrapp_option').attr('id');
		var inp = $('input#'+idn);
		$(inp).val(vals);
		$('div.wrapp_option').fadeOut(200).remove();
		
	});


так тоже,

$(inp).load(blok).val($(this).html());


нужно в value input записывать при клике id блка по которому кликнули.
jQuery изучаю недавно :(

Dilettante_Pro 02.03.2016 13:27

Vincent Vega,
Вы используете один и тот же id для разных элементов DOM, из-за этого все косо работает

Vincent Vega 02.03.2016 13:51

Цитата:

Сообщение от Dilettante_Pro (Сообщение 409729)
Vincent Vega,
Вы используете один и тот же id для разных элементов DOM, из-за этого все косо работает

Но у них у всех разные классы и тем более, в большинстве случаев, разные html тэги. Неужели в этом косяк?

Dilettante_Pro 02.03.2016 14:12

Vincent Vega,
Атрибут id

Задаёт стилевой идентификатор — уникальное имя элемента, которое используется для изменения его стиля и обращения к нему через скрипты. Идентификатор в коде документа должен быть в единственном экземпляре, иными словами, встречаться только один раз.
https://webref.ru/html/attr/id

Vincent Vega 02.03.2016 14:19

спасибо! буду думать...

Vincent Vega 02.03.2016 14:45

Цитата:

Сообщение от Dilettante_Pro (Сообщение 409732)
,
Атрибут id

Задаёт стилевой идентификатор — уникальное имя элемента, которое используется для изменения его стиля и обращения к нему через скрипты. Идентификатор в коде документа должен быть в единственном экземпляре, иными словами, встречаться только один раз.
https://webref.ru/html/attr/id

Таки огромное спасибо!!! :)

var elems;
	$("input[name='options']").click(function(){
		elems = $(this).attr('id');
		var opti = $('div.wrapp_option');
		$(opti).fadeOut(200);
		setTimeout(function(){
		opti = 
			$('<div/>',{class:'wrapp_option',id:'wr_'+elems}).appendTo('td.slot#sl_'+elems).fadeIn(300);
			$('<div/>',{class:'mah',id:'confirm',text:'Подтвердить'}).appendTo(opti);
			$('<div/>',{class:'mah',id:'deconfirm',text:'Отменить'}).appendTo(opti);
			$('<div/>',{class:'mah',id:'upd',text:'Обновить'}).appendTo(opti);
			$('<div/>',{class:'mah',id:'del',text:'Удалить'}).appendTo(opti);
			$('<div/>',{class:'mah',id:'by',text:'Передать'}).appendTo(opti);
		},200);
	});
	
	$('.slot').on('click','.mah',function(){
		var vals = $(this).attr('id');
		var inp = $('input.options#'+elems);
		$(inp).val(vals);
		$('div.wrapp_option').fadeOut(200).remove();
		elems = 0;
	});


вот так все заработало, даже то что не работало :)

респект за материал по id


Часовой пояс GMT +3, время: 21:52.