jQuery用字符串值替换属性href

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>

在同一页上,我也有一些带有唯一ID的DIV容器:

<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);
});
2个回答

1
您可以使用 attr 方法。
var $divs = $('#DownloadsContent > div');

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

http://jsfiddle.net/AG2LQ/


太好了!非常感谢。我使用这段代码添加了井号:$('#Downloads a').attr('href', function(i, c){ return '#' + $('#DownloadsContent > div').eq(i).attr('id'); }) - agssl

0
你需要使用 THIS 进行迭代,并且每次选择不同的变量(在这种情况下是 i):
$.each(id,function(i) {
   $("#Downloads li a").eq(i).attr('href', this);
});

(感谢评论进行编辑)


如果我没理解错的话,你想要的是这个而不是项目,并跳过参数。 - Marcus Johansson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接