我正在使用当前的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而不是类,我该如何实现?
答案 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++