我在表单下的页面上显示了多个项目。
我希望在提交表单时在每个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。
答案 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}}设置为每listItem
个link
。如果您想将每个listItem
href
设置为相应的link
,您应该只有一个循环,您可以在这两个集合中使用相同的索引。
for (var i = 0; i < listItems.length; i++) {
listItems[i].href = links[i];
}