如何找到ul中的所有链接并给它们ID

时间:2016-06-01 09:41:47

标签: jquery

假设我有一个无序列表,例如:

$('.mylist > li > a').eq(0).attr('id', 'link1');

我如何遍历此列表,获取链接文本并将其作为自身的ID? (我猜测我必须删除空格,如果链接文本有它们,然后再将它作为ID使用)

我试过选择链接并给它一个ID让自己开始,但不能单独工作。我试图给第一个链接一个ID:

{{1}}

4 个答案:

答案 0 :(得分:2)

你可以尝试这样的事情。

$('.mylist > li > a').each(function(){
   $(this).attr('id', $(this).text().replace(/ /g, ''));
});

使用$.each()a内循环.mylist并使用id's设置.attr(),并确保所有锚文字必须唯一,否则为ID&# 39; s将重复并导致无效的html。

答案 1 :(得分:1)

你可以,

$(".mylist li a").each(function() {
  $(this).attr("id", $(this).text().replace(/ /g, ''));
});

使用$().each循环遍历每个锚元素,然后使用attr()方法更改其ID。 请注意,id不应包含空格。

答案 2 :(得分:1)

你可以设置属性(在这种情况下映射到属性)或属性(使用attr而不是prop方法),参见例如:

$(".mylist li a").prop('id', function(){
    return this.innerHTML.trim().replace(/ /g,'');
});

但是你需要确保每个锚文本都是唯一的,以避免任何重复的ID ......

否则,您可以使用:

$(".mylist li a").prop('id', function(i){
    return this.innerHTML.trim().replace(/ /g,'') + "_" + i;
});

答案 3 :(得分:0)

var link1 = $('。mylist li:nth-​​child(1)')。attr('href');

var link2 = $('。mylist li:nth-​​child(2)')。attr('href');