87 votes

jQuery - Ajouter un ID au lieu de la classe

J'utilise le jQuery actuel:

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

Il applique le texte contenu dans le fil d'Ariane à 4 éléments de la page, ce qui me permet de styler spécifiquement la page correspondante.

J'aimerais essayer d'ajouter un identifiant au lieu d'un cours, comment puis-je y parvenir?

212voto

Sarfraz Points 168484

Essaye ça:

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

Alors ça devient;

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

Donc, vous changez / écrasez l'identifiant de trois éléments et ajoutez un identifiant à un élément. Vous pouvez modifier selon vos besoins ...

24voto

Anthony Points 14424

Gardez à l'esprit que cela écrase tout ID que l'élément a déjà:

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

La raison pour laquelle addClass existe, c'est qu'un élément peut avoir plusieurs classes. Vous ne souhaitez donc pas nécessairement écraser les classes déjà définies. Mais avec la plupart des attributs, une seule valeur est autorisée à un moment donné.

10voto

meouw Points 21368
$('selector').attr( 'id', 'yourId' );

4voto

geekbuntu Points 183

si vous voulez ajouter à l'id " plutôt que de le remplacer

récupérer l'id d'abord, puis ajouter votre nouvel identifiant. particulièrement utile pour twitter bootstrap qui utilise en entrée des états sur leurs formes.

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

si vous ne le faites pas, vous perdrez toutes les propriétés que vous précédente.

hth,

3voto

Nicolai Points 11

Im faire ce 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++

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X