Создание следующего Div'а
Есть такая страница:
<div id="test_[B]1[/B]"> <input type="text" name="address_1" id="address_1" value="" placeholder="Адрес" size="25" class="NewAdvertAddress" /> <input type="text" name="schedule_1" id="schedule_1" value="" size="15" onclick='schedule(1, "false")' placeholder="Выберите график" class="NewAdvertSchedule" /> <textarea name="comment_1" id="comment_1" placeholder="Комментарии" cols="70" rows="2" class="NewAdvertComment"></textarea> </div> Необходимо получить все элементы этого дива и клонировать так, что бы полчилось: <div id="test_[B]2[/B]"> <input type="text" name="address_2" id="address_2" value="" placeholder="Адрес" size="25" class="NewAdvertAddress" /> <input type="text" name="schedule_2" id="schedule_2" value="" size="15" onclick='schedule(2, "false")' placeholder="Выберите график" class="NewAdvertSchedule" /> <textarea name="comment_2" id="comment_2" placeholder="Комментарии" cols="70" rows="2" class="NewAdvertComment"></textarea> </div> Пробовал функцией .children(); Но не знаю, как среди всех забранных элементов выцепить один... |
Цитата:
http://jquery-docs.ru/Core/eq/#position |
Цитата:
|
С этим разоюрался,
делаю так:
$("#AddressInformation_0").children().map( function() {
var clon = $("#"+this.id).clone();
var nameExplode = this.name.split('_');
var nextName = +nameExplode[1]+1;
clon.attr('name', nameExplode[0]+'_'+nextName).attr('id', nameExplode[0]+'_'+nextName).appendTo('#AddressInformation_1');});
Но вот появляется следующий вопрос, как мне отредактировать событие OnClick? При вызове this.onclick, JQuery возвращает не ожидаемую строку: schedule(0, "false"), которую можно сплитом поделит и отредактировать, а вот такое:
function anonymous(event) {
schedule(0, "false")
}
И это .split(','), не поддается, что делать? Пожалуйста помогите... |
Цитата:
Например ту циферку хранить в некоем параметре элемента... Пусть скрипт берет нужное значение из него... |
А вы не могли бы пример написать? Хотя бы как это делать?
|
Цитата:
А пока только огрызки на которых и показать-то ничего не покажешь... |
Воть:)
<div id="AddressInformation_0" class="AddressInformation">
<input type="text" name="address_0" id="address_0" value="" placeholder="Адрес" size="25" class="NewAdvertAddress" />
<input type="text" name="schedule_0" id="schedule_0" value="" size="15" onclick='schedule(0, "false")' placeholder="Выберите график" class="NewAdvertSchedule" />
<textarea name="comment_0" id="comment_0" placeholder="Комментарии" cols="70" rows="2" class="NewAdvertComment"></textarea>
<p>
<button name="addAddress_0" id="addAddress_0" type="button" class="NewAdvertAddAddress" onclick='PriceAddAddress("add, 0")'>Добавить адрес</button></p>
</div>
JQuery:
function PriceAddAddress(type ,number)
{
if(type == 'add')
{
var NextNumber = number + 1;
//Создаем новый ДИВ с заранее высчитанным NextNumber
$('#AddressInformation_'+number).after('<div id="AddressInformation_'+nextNumber+'" class="AddressInformation"></div>');
//передаем название ДИВА, который необходимо клонировать с
//измененными id и name
PriceAddNewInput('#AddressInformation_'+nextNumber);
}
else
{
$('#AddressInformation_'+number).remove();
}
}
function PriceAddNewInput(div)
{
//перебираем все дочерние элементы и перебирая изменяем ID и Name
$(div).children().map( function() {
var clon = $("#"+this.id).clone();
var nameExplode = this.name.split('_');
var nextName = +nameExplode[1]+1;
//Вставляем в ДИВ, сощданный нами ранее
clon.attr('name', nameExplode[0]+'_'+nextName).attr('id', nameExplode[0]+'_'+nextName).appendTo('#AddressInformation_'+nextName);
});
}
|
Опять огрызки... :D
|
Отредактировал, что еще надо то? :)
|
| Часовой пояс GMT +3, время: 05:35. |