Как заменить href тегов привязки массивом ссылок?

#javascript

#javascript

Вопрос:

// Я пытаюсь заменить href массивом ссылок

     var link = ['replaceLink1', 'replaceLink2'];
    var links = document.querySelectorAll('a');
    for(var i = 0; i < link.length; i  ){
      for(var j = 0; j < links.length; j  ){
        links[j].setAttribute('href',link[i]);
       }
    }
  

Ответ №1:

вам не нужно выполнять циклы, просто удалите один и используйте итератор, чтобы выбросить оба массива

 var link = ['replaceLink1', 'replaceLink2'];
var links = document.querySelectorAll('a');
for (var i = 0; i < link.length; i  ) {
    links[i].setAttribute('href', link[i]);
  }  
 <a href="/link1" > click me ! </a>
<a href="/link2" >click me ! </a>  

Комментарии:

1. Спасибо! Это потрясающе.

Ответ №2:

вы можете зациклить с for of помощью цикла каждый тег привязки на странице и заменить href атрибут соответствующей ссылкой из массива (который должен быть того же размера, что и все ссылки на странице, иначе вы получите неопределенный как ссылка), например:

 var linksToReplace = ['replaceLink1', 'replaceLink2'];
var links = document.querySelectorAll('a');

for (let [i, link] of links.entries()) {
  link.setAttribute('href', linksToReplace[i]);
}  
 <a href="/link1"> click me ! </a>
<a href="/link2">click me ! </a>