Как упростить код?

Есть рабочий кусок кода, как его можно упростить?
Структура запроса сохранена, названия селекторов изменил:

document.querySelector('#selcheckbox > ul > li:nth-child(1) > div > ui-state > span').click();
document.querySelector('#selcheckbox > ul > li:nth-child(2) > div > ui-state > span').click();
document.querySelector('#selcheckbox > ul > li:nth-child(3) > div > ui-state > span').click();
document.querySelector('#selcheckbox > ul > li:nth-child(4) > div > ui-state > span').click();
document.querySelector('#selcheckbox > ul > li:nth-child(5) > div > ui-state > span').click();
  • Вопрос задан
  • 153 просмотра
Решения вопроса 1
MrDecoy
@MrDecoy Куратор тега JavaScript
Верставший фронтендер
А почему только до 5ти?

var items = document.querySelectorAll('#selcheckbox > ul > li > div > ui-state > span')
for (var i = 0, len = Math.min(items.length, 5); i < len; i+=1) {
  items[i].click()
}

//Math.min(items.length, 5) на случай если окажется меньше 5ти элементов.


Если их всегда 5 или нужно нажимать на все, то так можно ещё короче:
document.querySelectorAll('#selcheckbox > ul > li > div > ui-state > span').forEach(function(i){
  i.click()
})


UPD: на основе предложения выше для первых 5ти получаем:
document.querySelectorAll('#selcheckbox > ul > li:nth-child(-n+5) > div > ui-state > span').forEach(function(i){
  i.click()
})


p.s. клик на спане это фиаско. Кнопки где?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
uDenX
@uDenX
PHP Developer
Вынести в переменную кол-во наследников и подставлять индекс в цикле

Либо попробуйтеli:nth-child(-n+6)

https://developer.mozilla.org/ru/docs/Web/CSS/:nth...
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы