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 элементам на странице, что позволяет мне конкретно нарисовать на странице там.

Я хотел бы попробовать добавить идентификатор вместо класса, как я могу это сделать?

Ответ 1

Попробуйте следующее:

$('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());
    });
});

Таким образом, вы меняете/перезаписываете идентификатор трех элементов и добавляете идентификатор к одному элементу. Вы можете изменить в соответствии с вашими потребностями...

Ответ 2

Помните, что это перезаписывает любой идентификатор, который уже имеет элемент:

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

Причина, по которой существует addClass, состоит в том, что элемент может иметь несколько классов, поэтому вы не захотите перезаписывать уже установленные классы. Но с большинством атрибутов допустимо только одно значение в любой момент времени.

Ответ 3

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

Ответ 4

если вы хотите "добавить к 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,

Ответ 5

Я делаю это в 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++