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

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

75 голосов | спросил CLiown 1 FebruaryEurope/MoscowbMon, 01 Feb 2010 16:37:53 +0300000000pmMon, 01 Feb 2010 16:37:53 +030010 2010, 16:37:53

5 ответов


0

Попробуйте это:

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

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

ответил Sarfraz 1 FebruaryEurope/MoscowbMon, 01 Feb 2010 16:40:19 +0300000000pmMon, 01 Feb 2010 16:40:19 +030010 2010, 16:40:19
0

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

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

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

ответил Anthony 1 FebruaryEurope/MoscowbMon, 01 Feb 2010 16:42:18 +0300000000pmMon, 01 Feb 2010 16:42:18 +030010 2010, 16:42:18
0
$('selector').attr( 'id', 'yourId' );
ответил meouw 1 FebruaryEurope/MoscowbMon, 01 Feb 2010 16:39:57 +0300000000pmMon, 01 Feb 2010 16:39:57 +030010 2010, 16:39:57
0

если вы хотите «добавить к идентификатору», а не заменить его

сначала запишите текущий идентификатор, а затем добавьте новый. особенно полезно для начальной загрузки Twitter, которая использует входные состояния в своих формах.

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

если вы этого не сделаете - вы потеряете любые ранее установленные вами свойства.

HTH,

ответил meouw 1 FebruaryEurope/MoscowbMon, 01 Feb 2010 16:39:57 +0300000000pmMon, 01 Feb 2010 16:39:57 +030010 2010, 16:39:57
0

Я делаю это в 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++
ответил Nicolai 12 12012vEurope/Moscow11bEurope/MoscowMon, 12 Nov 2012 15:24:02 +0400 2012, 15:24:02

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132