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++