我有一个无序的链接列表,我需要将索引作为数字附加到。
因此href="#"
会读取href="#1"
,href="#2"
等。
据我所知,我可能需要使用.each()
,但我的语法功能还不够好。
我的一部分知道这很荒谬,但我有一个星期一的atm。
答案 0 :(得分:5)
您是指所选元素集中元素的索引吗?如果是这样,您可以使用.attr()
并将函数传递给它:
$('a').attr('href', function(i, value) {
return value + (i+1);
});
当然,您只需选择所需的链接,例如给你的清单一个ID:
$('#theList a')
<强>更新强>
jQuery 1.3.2(以及之前)似乎存在一个错误。 It seems the old value is not passed to the callback。所以你必须明确地阅读这个值:
return this.href + (i+1);
当然,如果旧值始终为#
,那么您可以将其与索引连接:
return '#' + (i+1);
但在这种情况下,您可以使用each()
作为@Shadow Wizard shows in his answer。将函数传递给attr
的好处只在于您避免了对属性的两次访问(一次读取,一次读取),这似乎无法在jQuery 1.3.2中起作用。
答案 1 :(得分:2)
嗯,这是周日但是......
$("#myList li").each(function(index) {
$(this).find("a").attr("href", "#" + (index + 1));
});
答案 2 :(得分:0)