3

いくつかのhref属性をいくつかのDIVのIDに置き換えようとしています。

(たとえば)3つのリンクがあり、次のような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>

3つのDIVのIDを取得し、それらを次のような3つのリンクへの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

これを使用して反復し、毎回異なるものを選択する必要があります(この場合はi)。

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

(コメントのおかげで編集)

于 2012-11-06T09:01:58.657 に答える