假设我有一个无序列表,例如:
$('.mylist > li > a').eq(0).attr('id', 'link1');
我如何遍历此列表,获取链接文本并将其作为自身的ID? (我猜测我必须删除空格,如果链接文本有它们,然后再将它作为ID使用)
我试过选择链接并给它一个ID让自己开始,但不能单独工作。我试图给第一个链接一个ID:
{{1}}
答案 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');