jQuery: установите номер клона с помощью опции ВЫБОРА

#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» или около того. Как мне их посчитать и добавить рядом с ним число?