JavaScript

javascript применить стиль.

Есть 4 элемента с классом small-picture, стиль видз нужно применить к 2 и 3, но применяется он почему-то только к последнему в массиве. Как правильно записать чтоб применился к обоим элементам? Это нужно сделать в консоли.
Либо на каждую по отдельности тыкать в виде:

document.getElementsByClassName('small-picture')[0]....
document.getElementsByClassName('small-picture')[1]....
document.getElementsByClassName('small-picture')[2]....

Или запустить цикал, который вместо вас переберет все варианты)

Сперва создаете переменную = получаете нужный вам класс:

var bubu = document.getElementsByClassName('small-picture');

for (var i = 0; i < bubu.length; i++) {
bubu[i].style.height = '210px';
}

i = созданная переменная, которая принимает значения от нуля до количества необходимых элементов.

То, что написано внутри for - выполняется сперва для i = 0, потом по новому кругу для i = 1, потом i = 2 и т. д. пока не дойдет до указанного количества ( i < bubu.length )

Причем, со всеми параметрами for можно свободно играться.

for ( i = 4; i < 10; i+=2 )

такой цикл запустится для значений i = 4, 6, 8
i++ то же самое что и i+=1
А в случае последнего цикла - на каждом круге прибавляем +2 к i
____

Общий вид:

for (число с которого начинаем код; число до которого заканчиваем; размер шага) {
здесь может быть вообще любой код, который нужно кругами повторять для нескольких чисел. Каких чисел - for ( пишется здесь )
}
МЖ
Макс Жебак
62 360
Лучший ответ
Потому что вообще не ясно что Вы хотели сделать через "[2, 3]", потому как аттрибут style принадлежит элементу, а не HTMLCollection

Вам нужно сохранить в переменную результат от getElementsClassName, затем пробежаться циклом for, и применить к каждому элементу style.height отдельно.

цикл у HTMLCollection объекта выглядит как-то так.

for(var i=0; i < itemsCollection.length; i++) {}

forEach с этим объектом не работает.
for (let el of [...document.querySelectorAll('.small-picture')].slice(1, 3))
 el.style.height = '210px';

Старый синтаксис (поддержка IE11):
const sp = document.querySelectorAll('.small-picture');
for (let i = 1; (i <= 2) && i < sp.length - 1; i++)
 sp[i].style.height = '210px';

А метод getElementsByClassName() вообще для другого нужен... здесь тебе живая коллекция без надобности.
Комил Сироjов Спасибо, ваш вариант сработал, но только после того как я в круглых ковычках после slice поставил (0, 4). Применилось ко всем четырем картинкам с этим классом (такой класс только у четырех элементов на странице., нужно было убавить), но почему вы написали (1, 3) ? Мне нужно было выставить фиксированную высоту элементу т. к он закрывал собой другие в блоке.