JQuery-添加 ID 而不是类

我使用的是当前的 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 而不是一个类,我如何才能实现这一点?

390002 次浏览
$('selector').attr( 'id', 'yourId' );

Try this:

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

So it becomes;

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

So you are changing/overwriting the id of three elements and adding an id to one element. You can modify as per you needs...

Keep in mind this overwrites any ID that the element already has:

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

The reason why addClass exists is because an element can have multiple classes, so you wouldn't want to necessarily overwrite the classes already set. But with most attributes, there is only one value allowed at any given time.

if you want to 'add to the id' rather than replace it

capture the current id first, then append your new id. especially useful for twitter bootstrap which uses input states on their forms.

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

if you do not - you will lose any properties you previous set.

hth,

Im doing this in 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++