Есть массив со значениями, необходимо обойти dom дерево и заполнить содержимое элементов c классом child-elem элементами из массива. Получается что ко всем ссылкам добавляется последний элемент массива. Подскажите что делаю не так.
<div class="container">
<div class="parent-elem">
<a class="child-elem"></a>
</div>
<div class="parent-elem">
<a class="child-elem"></a>
</div>
<div class="parent-elem">
<a class="child-elem"></a>
</div>
let arr = [1,2,3];
let div = '.child-elem',
elems = document.querySelectorAll(div),
elem,
key;
for (key in elems) {
elem = elems[key];
for (let i = 0; i<arr.length; i++) {
elem.innerHTML = arr[i]
}
}
вообще это решается одним циклом. но есть вопросы по поводу а что делать если элементов дом больше чем элементов в массиве? или наоборот а так это делается примерно так
let arr = [1,2,3];
let div = '.child-elem',
elems = Array.from(document.querySelectorAll(div)),
elem,
key;
for (let i = 0; i<arr.length; i++) {
elems[i].textContent = arr[i]
}
<div class="container">
<div class="parent-elem">
<a class="child-elem"></a>
</div>
<div class="parent-elem">
<a class="child-elem"></a>
</div>
<div class="parent-elem">
<a class="child-elem"></a>
</div>
в твоем же случае внутренний цикл последовательно записывает все значения массива в один и тот же элемент и потом переходит на следующий. так и получается что всегда последнее значение во всех элементах.
Получается что ко всем ссылкам добавляется последний элемент массива.
Вы перезаписываете значения.
let arr = [1, 2, 3];
let div = '.child-elem',
elems = document.querySelectorAll(div),
key;
i = 0
for (key in elems) {
// Добавит цифкру в child-elem
elems[key].innerHTML = arr[i++] || 'empty' // при разной длине массивов будет печатать empty
}
<div class="container">
<div class="parent-elem">
<a class="child-elem"></a>
</div>
<div class="parent-elem">
<a class="child-elem"></a>
</div>
<div class="parent-elem">
<a class="child-elem"></a>
</div>
<div class="parent-elem">
<a class="child-elem"></a>
</div>
<div class="parent-elem">
<a class="child-elem"></a>
</div>
</div>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Мне кажется нехватает информации в разделе "поделиться" пункты отправить на email(другу\себе)Как это сделать? возможно ли отправить не открывая...
есть файл, в котором лежит массив из объектовНеобходимо его обработать так, чтобы массив передался в переменную
Есть к примеру числа 13121313176781 и 1537275В первом числе нужно получить 6 и 81 так как разделитель 7, а во втором числе нужно получить 2 и 5
Как написать регулярное выражение, которое убирает все символы кроме цифр и символа +?