2010-08-31 21 views
0

因此,舉例來說,我有一個名單,我需要從中提取的HREFs:BTWjQuery的 - 以一組從列表的HREF和應用這些的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> 

,這論壇垃圾郵件保護不會讓我放置任何超鏈接,這就是爲什麼上面的代碼在語義上不正確的原因。

並將這些HREF中下面的列表,以便

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

它是動態的(在我想第一個列表意味着儘可能多的HREF),所以我不希望使用EQ或第n次,我遠通過閱讀在這個論壇的幫助獲得這樣的,但我對如何繼續與應用的HREFs到第二列表不清楚:

var hrefs = ''; 

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

任何幫助將不勝感激!謝謝!

+0

是第二名單已建成的?你只是想在裏面注入href,還是你想要li和一個標籤生成? – brad 2010-08-31 16:12:17

+0

nope,它們已經使用插件生成了,我只是想按順序「注入」現有的hrefs,感謝編輯上面的代碼,下面的示例是有道理的,我會嘗試一下並報告回來。謝謝你的幫助。 – Jim 2010-08-31 16:22:42

回答

3

您可以使用.each()循環這樣做:

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

所有這一切都做越來越目的地錨(或者你可以扭轉它...),通過<a>要素,以循環和在目標.list2的相同索引處設置相應的href

或者,你可以使用.attr()這樣的:

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

哇,我不可思議地想過這整個方法。我從字面上搜索並嘗試了一切,我無法相信這就是這麼簡單。尼克,非常感謝您的建議。我喜歡這個論壇已被Google徹底索引,以便其他人可以使用這些方法。 順便說一句,我用你的第二種方法,它做了我正在尋找的。 再次感謝! – Jim 2010-08-31 16:28:10

相關問題