如何将生成的数字ID附加到某些链接

时间:2015-12-15 20:17:19

标签: javascript jquery

我已在列表中生成要应用的数字ID,如下所示:

var _href = $('li').attr('id', function (i, _) {
    return 'item-' + (i + 1);
});

现在我想将这些ID放在一些链接中,这是我的代码:

$("a").attr({
    href: "#item-" + _href
});

我需要的是一个带有ID(li#item-1li#item-2,...)的多个重复列表以及一些带有这些ID的链接

但它不起作用,结果是:#item-[object Object]

2 个答案:

答案 0 :(得分:5)

您可以使用<a>执行同时定位.eq(Index) (其中索引是当前LI的索引迭代)

var $a = $("a"); // P.S: use some better selector like i.e. $("#menu").find("a");

$('li').attr('id', function (i, _) {
   var id = "item-" + (i+1);            // Prepare the result
   $a.eq(i).attr("href", "#"+ id);      // Assign result with #HASH to Anchors .eq()
   return id;                           // Return result as ID
});

http://jsbin.com/joraja/1/edit?html,css,js,console,output

https://api.jquery.com/eq/

答案 1 :(得分:0)

或者你可以试试这个:JS Fiddle

var _href = $('li').attr('id', function (i, _) {
    return 'item-' + (i + 1);
});
$('a').each(function(index){
    var x = $('li')[index];
    $(this).attr('href', '#' + $(x).attr('id'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<a>Link 1</a>
<a>Link 2</a>
<a>Link 3</a>
<a>Link 4</a>
<a>Link 5</a>
<ul>
  <li>example 1</li>
  <li>example 2</li>
  <li>example 3</li>
  <li>example 4</li>
  <li>example 5</li>
</ul>