#javascript #web #queryselectall
Вопрос:
Привет!
Я работаю над переводом авторской гиперссылки на несколько языков.
Может ли кто-нибудь помочь мне правильно выполнить цикл querySelectAll, который переводит некоторый текст для всех элементов, собранных им, потому что он переводит только первую гиперссылку, а не их все.
switch (pLang) {
case "lv":
document.querySelectorAll('[title="John Davis publikācijas"]').innerHTML = "Džons Deivis";
break;
case "ru":
document.querySelectorAll('[title="Записи John Davis"]').innerHTML = "Джон Дэйвис";
break;
}
Комментарии:
1. developer.mozilla.org/en-US/docs/Web/API/Document/… , он возвращает список элементов, которые вам нужно использовать в цикле, например, для каждого или для
Ответ №1:
Вы можете использовать a forEach
для изменения всех элементов, а не только первого:
switch (pLang)
{
case "lv":
[... document.querySelectorAll('[title="John Davis publikācijas"]')].forEach((element)=>
{
element.innerHTML = "Džons Deivis";
});
break;
case "ru":
[... document.querySelectorAll('[title="Записи John Davis"]')].forEach((element)=>
{
element.innerHTML = "Джон Дэйвис";
});
break;
}
Комментарии:
1. Нет необходимости в распространении на новый массив.
forEach
является поддерживаемым методом в списке узлов.2. Я всегда преобразую список узлов в массивы. Я забыл, почему. @тринкот