Javascript 如何添加<;a>;具有多个href属性的元素<;李>;元素?

Javascript 如何添加<;a>;具有多个href属性的元素<;李>;元素?,javascript,Javascript,我的任务是在导航列表的“li”元素及其文本上创建链接。因此,我必须使用class=“navigation”将一个带有a href attribute的锚元素添加到三个li元素中。我试图做一个代码,但它是不正确的,任何人都可以帮助我使其工作 var a = document.createElement("a"); var li = document.getElementsByClassName("navigation"); for (i = 0; i < a.length; i++) { a

我的任务是在导航列表的“li”元素及其文本上创建链接。因此,我必须使用class=“navigation”将一个带有a href attribute的锚元素添加到三个li元素中。我试图做一个代码,但它是不正确的,任何人都可以帮助我使其工作

var a = document.createElement("a");
var li = document.getElementsByClassName("navigation");
for (i = 0; i < a.length; i++) {
a.setAttribute("href", "#html");
li.appendChild(a);
}
var a=document.createElement(“a”);
var li=document.getElementsByClassName(“导航”);
对于(i=0;i
li class=“导航”-应更改为-
li class=“navigation”a href=“#HTML”等表示三个“li”元素。

在您的代码中
a
仅声明一次,当您更改
setAttribute
并将
a
附加到
li
a
时,将引用同一元素

  • 在for循环中移动
    a
    的声明
  • 使用
    li[i]
    而不是
    li
    ,因为
    li
    不是它的HTMLCollection元素
还要向
a
添加一些innerHTML,以便查看它是否存在。并避免声明隐式全局变量。将
let
i
一起使用

var li = document.getElementsByClassName("navigation");
for (let i = 0; i < li.length; i++) {
   var a = document.createElement("a");
   a.setAttribute("href", "#html");
   a.innerHTML = 'link' + i
   li[i].appendChild(a);
}

@马特伦:谢谢你的建议。我已经编辑了答案。第一个代码中有一个拼写错误,
for(让I=0;I
a.length
应该是
li.length
很好的代码,这很有效。谢谢!但是现在我有另一个问题。导航不是一个链接,而是导航标题旁边有一个链接。@Sus不能说任何话,除非看到你正在使用的代码。HTML代码是HTML
  • DOM
  • Javascript
  • ,页面上的结果是-htmlink0 DOMlink1 Javasscriptlink2
    var li = document.querySelectorAll(".navigation");
    li.forEach(x => {
      var a = document.createElement("a");
      a.setAttribute("href", "#html");
      a.innerHTML = 'link' + i
      x.appendChild(a);
    
    })