3

我尝试用一​​些 DIV 的 ID 替换一些 href 属性。

我有一个包含(例如)三个链接且没有 href 值的列表,例如:

<ul id="Downloads">
    <li><a href="">Some content 1</a></li>
    <li><a href="">Some content 2</a></li>
    <li><a href="">Some content 3</a></li>
</ul>

我在同一页面上还有一些 DIV,它们在容器中具有唯一 ID:

<div id="DownloadsContent">
    <div id="221">Some content</div>
    <div id="325">Some content</div>
    <div id="124">Some content</div>
</div>

我想获取三个 DIV 的 ID,并将它们设置为三个链接的 href 属性,例如:

<li><a href="#221">Some content 1</a></li>
<li><a href="#325">Some content 2</a></li>
<li><a href="#124">Some content 3</a></li>

我尝试使用 .map 和 .each 函数,但在我当前的尝试中,我得到了类似<a href="221,325,124"></a>的链接——因此 href 属性被整个字符串替换。

这是我的方法:

var id = $('#DownloadsContent > div').map(function() { return this.id }).get();

$.each(id,function() {
    $("#Downloads li a").attr('href', id);
});
4

2 回答 2

1

你可以使用attr方法。

var $divs = $('#DownloadsContent > div');

$('#Downloads a').attr('href', function(i, c){
   return '#' + $divs.eq(i).attr('id')
})

http://jsfiddle.net/AG2LQ/

于 2012-11-06T09:04:34.443 回答
0

您需要使用 THIS 进行迭代,并每次选择不同的(在本例中为 i):

$.each(id,function(i) {
   $("#Downloads li a").eq(i).attr('href', this);
});

(编辑感谢评论)

于 2012-11-06T09:01:58.657 回答