#javascript #jquery #jquery-selectors #clone
#javascript #jquery #jquery-селекторы #клонировать
Вопрос:
У меня есть ВЫБОР, где я выбираю, сколько у меня дочерних элементов, и затем получаю нужное количество входных данных. Этот фрагмент клонирует и добавляет номер. Итак, если вы выберете 4 два раза, количество входных данных будет равно 8. Как я могу сделать это фиксированным количеством клонов, а не добавленными клонами?
Более того, я хотел бы добавить идентификатор (я назвал его ‘userInputID’ в скрипте, но это не работает) или имена для каждого клона. Как мне это сделать?
//Add the right amount inputs based on SELECT option clicked
$('select.linkedToNext').change(function() {
// Get number of children chosen
var childrenCount = $(this).val(),
// Get a reference to the first input group so we can clone it
userInputID = $(".linkedToPrev div").index();
birthday = $('.linkedToPrev div:first').attr('name', userInputID);
// Clone per number chosen
for (var i = 0; i < childrenCount; i ) {
// Insert clone after original.
// IRL, you probably need to do some preprocessing on it first.
birthday.clone().insertAfter(birthday);
$(this).parent().next(".linkedToPrev").slideDown('slow');
}
});
Ребята, вы можете мне здесь помочь? Думаю, я переборщил с этим … 🙁
Ответ №1:
Во-первых, вы должны изменить var childrenCount = $(this).val()
на это:
var childrenCount = $(this).find('option:selected').val()
Более того, я хотел бы добавить идентификатор
(Я назвал это ‘userInputID’ в
скрипт, но он не работает) или имена
для каждого клона.
Это можно сделать следующим образом:
birthday
.clone()
.attr('name', 'somenamehere')
.attr('id', 'elemIdHere')
.insertAfter(birthday);
Комментарии:
1. То, что я подразумевал под именем или идентификатором для каждого, заключалось в том, чтобы присвоить каждому из них уникальное имя или идентификатор. Если я получу 3 экземпляра, они будут названы «День рождения-1», «День рождения-2», «День рождения-3» или около того. Как мне их посчитать и добавить рядом с ним число?