使用jQuery将id应用于列表项链接

时间:2013-01-05 19:52:02

标签: jquery

我想在无序列表项中添加一个id。不是<li>标记,而是在<li>标记内,如下所示:

<li><a href="#" id="Here i want to add an id"></a></li>

因此,如果你能看到,在标签内部,我想添加一个ID。

2 个答案:

答案 0 :(得分:2)

$('li > a').attr('id', 'id_to_add');

理想情况下,您将为li设置更具体的选择器。您应该为li classid提供可以用来更好地识别它的内容,例如

<li class="needs-id">...

$('li.needs-id > a').attr('id', '...');

答案 1 :(得分:1)

您需要确保不在文档中引入重复的ID。因此,您需要测试文档中是否已使用了ID。在一组节点上使用attr('id', 'some_id')将直接引入重复项。因此,您必须使用.each进行一些迭代。此外,您需要确保不会意外删除现有的ID,这可能会导致不必要的副作用。

function generateId(base) {
    generateId.iterator = generateId.iterator || 1;
    base = base || '';
    while (document.getElementById(base + generateId.iterator)) {
       generateId.iterator ++;
    }
    return base + generateId.iterator;
}

$('li > a').each(function() {
    this.id = this.id || generateId();
});