jQuery - 添加ID而不是Class

时间:2010-02-01 13:37:54

标签: jquery

我正在使用当前的jQuery

$(function() {
    $('span .breadcrumb').each(function(){
        $('#nav').addClass($(this).text());
        $('#container').addClass($(this).text());
        $('.stretch_footer').addClass($(this).text())
        $('#footer').addClass($(this).text());
    });
});

它将包含在痕迹中的文本应用于页面上的4个元素,允许我专门为其中的页面设置样式。

我想尝试添加ID而不是类,我该如何实现?

5 个答案:

答案 0 :(得分:196)

试试这个:

$('element').attr('id', 'value');

所以它变成了;

$(function() {
    $('span .breadcrumb').each(function(){
        $('#nav').attr('id', $(this).text());
        $('#container').attr('id', $(this).text());
        $('.stretch_footer').attr('id', $(this).text())
        $('#footer').attr('id', $(this).text());
    });
});

因此,您正在更改/覆盖三个元素的id并向一个元素添加id。 您可以根据需要进行修改......

答案 1 :(得分:22)

请记住,这会覆盖元素已有的任何ID:

 $(".element").attr("id","SomeID");

addClass存在的原因是因为一个元素可以有多个类,所以你不一定要覆盖已设置的类。但是对于大多数属性,在任何给定时间只允许一个值。

答案 2 :(得分:8)

$('selector').attr( 'id', 'yourId' );

答案 3 :(得分:4)

如果你想'添加到id'而不是替换它

首先捕获当前ID,然后附加新ID。对于在其表单上使用输入状态的twitter bootstrap特别有用。

    new_id = '{{old_id}} inputSuccess';
    old_id = that.attr('id');
    that.attr('id', new_id.replace( /{{old_id}}/ig,old_id));

如果不这样做 - 您将丢失之前设置的任何属性。

HTH,

答案 4 :(得分:3)

我在coffeescript中这样做

booking_module_time_clock_convert_id = () ->
  if $('.booking_module_time_clock').length
    idnumber = 1
    for a in $('.booking_module_time_clock')
      elementID = $(a).attr("id")
      $(a).attr( 'id', "#{elementID}_#{idnumber}" )
      idnumber++