Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2018, 15:07   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Javany Посмотреть сообщение
Проблема в строке 57, var sel = document.getElementById('selCol');
В песочнице рабочий вариант, но элемент я забрал по Id, после клонирования я получаю много элементов с одинаковым Id, вместо Id нужно забрать по имени тега или по классу, а у меня не получается.
Вы знаете, я, наверное, не смогу Вам помочь.
Честно, я пытался, но понять Вас - выше моих сил.

во-первых, про то, что клонировать элементы с сохранением ID нельзя, Вы знаете, но, тем не менее, в вашем примере именно так и сделано.

во-вторых, код в строке 57 - это функция/обработчик события нажатия (Click) на кнопку "button", в этой функции происходит клонирование элемента. И более ничего. Вам нужно, чтобы можно было клонировать элемент без ID ?
По классу ?
В этом и есть ваша проблема?!

если в этом проблема, тогда попробуйте код (в песочнице он же - ТЫЦ):
Код:
.....
<h1>Цветныe блоки</h1>
<FORM name="form1" >

<select class ="selCol"  name="color[]">
	<option value="red">красный</option>
	<option value="green">зеленый</option>
	<option value="blue">синий</option>
	<option value="blue">желтый</option>
	<option value="blue">фиолетовый</option>
</select>

<br>

<input id="button" type="button" name="clone" value="добавить блок">

<br>

<input type="radio" name="location" checked="" value="float: left"> строка

<input type="radio" name="location" checked="" value=" "> столбец

<br>

<input type="submit" name="select" value="отправить запрос 2">

</form>

<script>
	var but = document.getElementById('button');
	but.addEventListener('click',function(){
		var nodes = document.querySelectorAll('.selCol');
		if (nodes && (nodes.length>0)) {
			var first = nodes[0]; // первый блок с нужным классом
			var clone = first.cloneNode(true);
			first.parentNode.insertBefore(clone, first.nextSibling);
		}
	});	

</script>
</body>
</html>

Последний раз редактировалось Serge_Bliznykov; 21.05.2018 в 15:23.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.05.2018, 15:27   #12
Javany
Пользователь
 
Регистрация: 15.05.2018
Сообщений: 75
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
во-первых, про то, что клонировать элементы с сохранением ID нельзя, Вы знаете, но, тем не менее, в вашем примере именно так и сделано.
Да, проблема в том что я написал не подумав о последствиях. Я создал <select> с id, забрал в переменную, повесил клик, клонировал элемент. У меня возник вопрос по php, я обратился на форум, и помимо помощи, с php мне Stanislav указал на мою ошибку с id, огромное спасибо ему за это, и когда я решил поменять id на class, я не смог этого сделать. Хотел понять почему.
Не задавай вопрос, если не знаешь что делать с ответом...
Javany вне форума Ответить с цитированием
Старый 21.05.2018, 15:34   #13
Javany
Пользователь
 
Регистрация: 15.05.2018
Сообщений: 75
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
s
Спасибо, пойду разбираться.
Не задавай вопрос, если не знаешь что делать с ответом...
Javany вне форума Ответить с цитированием
Старый 21.05.2018, 16:44   #14
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

Цитата:
я обратился на форум, и помимо помощи, с php мне Stanislav указал на мою ошибку с id, огромное спасибо ему за это
Обращайтесь.
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума Ответить с цитированием
Старый 23.05.2018, 11:04   #15
SQLPowerUser
Форумчанин
 
Аватар для SQLPowerUser
 
Регистрация: 19.01.2015
Сообщений: 158
По умолчанию

Javany,

чтобы код легче читался/писался, я использую вот такие сокращения для манипуляций с DOM:
Код:
function gid(i) {return document.getElementById(i);}
function CEL(s) {return document.createElement(s);}
function ACH(p,c) {p.appendChild(c);}
function QS(el,s) {return el.querySelector(s);}
function QSA(el,s) {return el.querySelectorAll(s);}
Вашу задачу можно решить так:
http://plnkr.co/edit/OpiVVsW8Ow8kIVpZ1GGa?p=preview
SQLPowerUser вне форума Ответить с цитированием
Старый 23.05.2018, 11:07   #16
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

Сокращения конечно, гуд, но когда пишешь ручками каждый раз запоминаешь быстрее. и второе современные IDE подсказки выкидывают
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума Ответить с цитированием
Старый 23.05.2018, 11:23   #17
Javany
Пользователь
 
Регистрация: 15.05.2018
Сообщений: 75
По умолчанию

Цитата:
Сообщение от SQLPowerUser Посмотреть сообщение
Вашу задачу можно решить так:
Спасибо, тоже учту.
Не задавай вопрос, если не знаешь что делать с ответом...
Javany вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JSP + HQL: как в блоке <select></select> вызвать метод из DAO? Blondy Java для Web (EE, Servlet, JSP, Tomcat, Spring MVC) 4 01.06.2013 15:54
В зависимости от выбора в Select изменить значения другого Select Tayfun HTML и CSS 3 18.08.2011 00:05
Select t1.N,t1.FIO,(select t2.acc from t2 where t2.type=1) from t1,t2 mavlon_m SQL, базы данных 2 17.09.2009 15:28
Забрать файлы по сети Darth Работа с сетью в Delphi 7 29.06.2008 23:04
Передача значения в <select></select> kkkggg Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 06.09.2007 00:26