Pregunta jQuery - Agregar ID en lugar de Class


Estoy usando la corriente jQuery:

$(function() {
    $('span .breadcrumb').each(function(){
        $('#nav').addClass($(this).text());
        $('#container').addClass($(this).text());
        $('.stretch_footer').addClass($(this).text())
        $('#footer').addClass($(this).text());
    });
});

Aplica el texto contenido en el rastro de navegación a 4 elementos en la página, lo que me permite darle un estilo específico a la página allí.

Me gustaría intentar agregar una ID en lugar de una clase, ¿cómo puedo lograr esto?


73
2018-02-01 13:37


origen


Respuestas:


Prueba esto:

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

Entonces se vuelve;

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

Así que está cambiando / sobrescribiendo la identificación de tres elementos y agregando una identificación a un elemento. Puede modificar según lo necesite ...


178
2018-02-01 13:40



Tenga en cuenta que esto sobrescribe cualquier ID que el elemento ya tenga:

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

La razón por la cual addClass Existe porque un elemento puede tener múltiples clases, por lo que no es necesario sobrescribir necesariamente las clases ya establecidas. Pero con la mayoría de los atributos, solo se permite un valor en un momento dado.


20
2018-02-01 13:42



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

7
2018-02-01 13:39



si desea 'agregar a la identificación' en lugar de reemplazarla

primero capture la identificación actual, luego agregue su nueva identificación. especialmente útil para Twitter bootstrap que usa estados de entrada en sus formularios.

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

si no lo hace, perderá las propiedades que estableció anteriormente.

hth,


4
2017-11-12 11:24



Estoy haciendo esto en 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++

3