jquery - взять набор hrefs из списка и применить эти hrefs к другому списку в порядке - PullRequest
0 голосов
/ 31 августа 2010

Так, например, у меня есть список, и мне нужно извлечь из него hrefs:

<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>

Кстати, защита от спама на этих форумах не позволяет мне размещать больше гиперссылок, поэтому кодВыше это семантически неверно.

И применить эти hrefs к приведенному ниже списку в следующем порядке:

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

Это должно быть динамическим (то есть столько hrefs в первом списке, сколько я хочу), поэтомуЯ не собираюсь использовать eq или nth, я получил это далеко, прочитав справку на этом форуме, но неясно, как продолжить применять hrefs ко второму списку:

var hrefs = '';

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

AnyПомощь будет принята с благодарностью!Спасибо!

1 Ответ

3 голосов
/ 31 августа 2010

Вы можете сделать это, используя цикл .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');
});
...