Здравствуйте.
1. Я не хочу использовать jQuery, но мне нужна от туда фишка с применением параметров на массив объектов (простите, если неправильно использовала термины).
Я имею в виду это
$(".block").addClass("red")
И если есть несколько объектов с классом block, то применится addClass для всех объектов. В чистом JS я делаю это так:
document.querySelectorAll(".block").forEach((el)=> {
el.classList.add("red");
});
Подскажите, как быть с функцией, которая бы делала forEach?
Я просто не совсем могу сообразить, как такое сделать. Вот так не работает (ну и не должно)
function qsf(e) {
return
document.querySelectorAll(e).forEach((el)=> {
el
})
}
2. На данный момент я себе сделала 2 функции
function q(e){return document.querySelector(e)}
function qs(e){return document.querySelectorAll(e)}
И теперь обращаюсь через q и qs соответственно. Так на много удобнее и короче получается.
Вопрос: насколько это правильное решение? Не замедляю ли я таким образом код? Ведь я заставляю его постоянно вызывать функцию. Может быть это как-то сказывается на ОЗУ?
3. Почему раньше, когда я видела js код, постоянно писали getElementById или getElementsByClassName, а не использовали querySelector, ведь так намного проще? Там же можно обратиться и по ID и по Class. Просто для меня, когда я первый раз столкнулась с кодом, лет 5 назад, это было аргументом для того, чтобы использовать jquery. Там только знак доллара, а здесь пипец какой-то. А теперь оказывается, что есть querySelector.
P.S.
getElementsByClassName я видела как раз в таком виде:
document.getElementsByClassName("block").forEach((el)=> {
el.classList.add("red");
});
и меня это пугало, так как можно было сделать $(".block").addClass("red");