jquery - 从列表中获取一组href并按顺序将这些href应用于另一个列表

时间:2010-08-31 16:09:47

标签: jquery loops each

例如,我有一个列表,我需要从中提取href:

<ul class="list1">
<li><a href="link1">Link1</a></li>
<li><a href="link2">Link2</a></li>
<li><a href="link3">Link3</a></li>
</ul>
BTW,这个论坛的垃圾邮件保护不允许我添加任何超链接,这就是为什么上面的代码在语义上是不正确的。

并按顺序将这些href应用于下面的列表

<ul class="list2">
<li><a>Link1</a></li>
<li><a>Link2</a></li>
<li><a>Link3</a></li>
</ul>

它是动态的(意思是我想要的第一个列表中有很多href),所以我不打算使用eq或nth,我已经通过在这个论坛中阅读帮助得到了这一点,但目前还不清楚关于如何继续将hrefs应用于第二个列表:

var hrefs = '';

$('ul#direction-fade-slider li a.url').each(function(idx, item) {  
  hrefs += item.href + '\n';  
});

任何帮助将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:3)

您可以使用.each()循环执行此操作:

var anchors = $("ul.list2 a");
$("ul.list1 a").each(function(i) {
   anchors.get(i).href = this.href;
});

所有这一切都是在获取目标锚点(或者你可以反转它......),按顺序循环遍历<a>元素并在同一索引处设置相应的href元素在目的地.list2

或者,您可以像这样使用.attr()

var source = $("ul.list1 a");
$("ul.list2 a").attr('href', function(i) {
   return source.eq(i).attr('href');
});