Javascript for-of循环数组并将值传递给for-of循环over ul

时间:2016-09-08 21:34:47

标签: javascript arrays loops nested-loops dom-traversal

我在表单下的页面上显示了多个项目。

我希望在提交表单时在每个li中添加一个链接。我有一个链接数组,我希望有一个方法循环数组和循环遍历li,基本上是每个li上的setAttribute,迭代。

我正在使用的代码是通过使用动作挂钩(bc是一个wordpress网站)来观察提交,并在动作钩子回调函数中返回以下内容:

(function(){ 
var links = ['link1', 'link2', 'link3'];  
var parentList = document.querySelector('.support-list'); 
var listItems = parentList.querySelectorAll('a');  

for(var listItem of listItems){ 
    for( var link of links){ 
         listItem.href = link; 
        } 
    }
 })()

到目前为止,我只能传递第一个链接,我没有迭代数组,但我正在迭代li。

2 个答案:

答案 0 :(得分:0)

也许最好解释一下你的问题。但是,我看到你的listItems总是会有href' link3'这是因为在内部循环中,您将链接更改3次并停在最后一个链接' link3'。

也许这就是你想做的事情

listItems.forEach(function(item,index){
 item.href = links[index % 3]; 
//modulus is used in case you have more than three items, otherwise it is not really needed but wont cause any trouble.
})

答案 1 :(得分:0)

当您使用这样的嵌套循环时,您需要将每个href的{​​{1}}设置为每listItemlink。如果您想将每个listItem href设置为相应的link,您应该只有一个循环,您可以在这两个集合中使用相同的索引。

for (var i = 0; i < listItems.length; i++) {
    listItems[i].href = links[i];
}