blackseabreathe
@blackseabreathe
brackets

Как скопировать данные в элемент, порядковый номер которого идентичен с элементом из которого копируем Jquery?

Пример:

Есть несколько div, содержащих в себе какие-то теги. И у каждого div есть атрибут data-index="...":
<div class="elem" data-index="0">
<a>..</a>
<span>...</span>
<p>...</p>
</div>
<div class="elem" data-index="1">
<a>..</a>
<span>...</span>
<p>...</p>
</div>
...


и есть input-ы (количество input равно количеству div(8 div = 8 input, 12 div = 12 input))..
<input type="hidden" name="good" class="goodNum">

к каждому class="goodNum" прибавляю index и получается
<input type="hidden" name="good" class="goodNum0">
<input type="hidden" name="good" class="goodNum1">
<input type="hidden" name="good" class="goodNum2">
..


Теперь суть вопроса:
Если имеем у каждого div разный аттр data-index=".0,1,2,3,4" и у каждого input разный class="goodNum...0,1,2,3,4" со схожим порядковым номером, то как скопировать допустим содержимое (текст) тега a из первого div в первый input? Содержимое p второго div в value естественно второго input?

Игрался с index, но мозгов не хватает

var index = $('div').attr('data-index');
$(". goodNum").each(function (i) {
$(this).prop("class", "goodNum" + i);
});
var di = $('div').find('a').text();
alert(di);
$('. goodNum' + index).val(di);


В общем кашу сделал. Any help?
  • Вопрос задан
  • 30 просмотров
Решения вопроса 1
@DanKud
Вам не нужно добавлять к классу .goodNum индексы. В этом нет необходимости. Также если у вас <div> идут по порядку то не вижу смысла присваивать атрибут data-index потому что это просто порядковый номер элемента, который можно получить без дополнительных атрибутов. А для выбора элемента по индексу в JQuery используется метод .eq():
$(document).ready(() => {
    $('.elem').each(function() {
        const index = $(this).attr('data-index');
        $('.goodNum').eq(index).val($(this).find('a').text());
    }) 
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы