Je souhaite modifier la classe d'une balise td en fonction de son identifiant:
<td id="td_id" class="change_me"> ...
Je veux pouvoir faire ceci tout en étant dans l'événement click d'un autre objet dom. Comment puis-je récupérer l'id du td et changer de classe?
Vous pouvez définir la classe (quel que soit ce que était) en utilisant .attr()
, comme ceci:
$("#td_id").attr('class', 'newClass');
Si vous voulez ajouter une classe, utilisez .addclass()
à la place, comme ceci:
$("#td_id").addClass('newClass');
Ou un moyen court pour échanger des classes en utilisant .toggleClass()
:
$("#td_id").toggleClass('change_me newClass');
Voici la liste complète des méthodes jQuery spécifiquement pour l'attribut class
.
Je pense que vous cherchez ceci:
$('#td_id').removeClass('change_me').addClass('new_class');
Je pense qu'il veut remplacer un nom de classe.
Quelque chose comme ça marcherait:
$(document).ready(function(){
$('.blue').removeClass('blue').addClass('green');
});
à partir de http://monstertut.com/2012/06/use-jquery-to-change-css-class/
Vous pouvez faire ceci: $("#td_id").removeClass('Old_class');
$("#td_id").addClass('New_class');
.__ ou vous pouvez faire ceci
$("#td_id").removeClass('Old_class').addClass('New_class');
Donc, vous voulez le changer QUAND vous cliquez dessus ... laissez-moi passer en revue tout le processus . Supposons que votre "objet DOM externe" soit une entrée, comme une sélection
Commençons par ce code HTML:
<body>
<div>
<select id="test">
<option>Bob</option>
<option>Sam</option>
<option>Sue</option>
<option>Jen</option>
</select>
</div>
<table id="theTable">
<tr><td id="cellToChange">Bob</td><td>Sam</td></tr>
<tr><td>Sue</td><td>Jen</td></tr>
</table>
</body>
Quelques CSS très basiques:
#theTable td {
border:1px solid #555;
}
.activeCell {
background-color:#F00;
}
Et configurez un événement jQuery:
function highlightCell(useVal){
$("#theTable td").removeClass("activeCell")
.filter(":contains('"+useVal+"')").addClass("activeCell");
}
$(document).ready(function(){
$("#test").change(function(e){highlightCell($(this).val())});
});
Désormais, chaque fois que vous sélectionnez un élément dans la sélection, une cellule avec le texte correspondant est automatiquement trouvée, ce qui vous permet de renverser le processus complet basé sur un identifiant. Bien sûr, si vous voulez le faire de cette façon, vous pouvez facilement modifier le script pour utiliser des identifiants plutôt que des valeurs en disant:
.filter("#"+useVal)
et assurez-vous d'ajouter les identifiants de manière appropriée. J'espère que cela t'aides!
Vous pouvez consulter addClass ou toggleClass
MODIFIER:
Si vous dites que vous le remplacez à partir d'un élément imbriqué, vous n'avez pas du tout besoin de l'ID. Vous pouvez le faire à la place:
$(this).closest('td').toggleClass('change_me some_other_class');
//or
$(this).parents('td:first').toggleClass('change_me some_other_class');
Réponse originale:
$('#td_id').removeClass('change_me').addClass('some_other_class');
Une autre option est:
$('#td_id').toggleClass('change_me some_other_class');
$('.btn').click(function() {
$('#td_id').removeClass();
$('#td_id').addClass('newClass');
});
or
$('.btn').click(function() {
$('#td_id').removeClass().addClass('newClass');
});
cette méthode fonctionne bien pour moi
$('#td_id').attr('class','new class');
changer de classe en utilisant jquery
essayez ceci
$('#selector_id').attr('class','new class');
vous pouvez également définir n'importe quel attribut à l'aide de cette requête
$('#selector_id').attr('Attribute Name','Attribute Value');
Si vous avez déjà une classe et devez alterner entre les classes opposées pour ajouter une classe, vous pouvez chaîner des événements de basculement:
$('li.multi').click(function(e) {
$(this).toggleClass('opened').toggleClass('multi-opened');
});
Je ferais mieux d'utiliser le .prop pour changer le className et cela a fonctionné parfaitement:
$(#td_id).prop('className','newClass');
pour cette ligne de code, il vous suffit de changer le nom de newClass, et bien sûr l'id de l'élément, dans l'exemple suivant: idelementinyourpage
$(#idelementinyourpage).prop('className','newClass');
En passant, lorsque vous souhaitez rechercher quel style est appliqué à un élément, il vous suffit de cliquer sur F12 dans votre navigateur lorsque votre page est affichée, puis de sélectionner l'élément dans l'explorateur DOM, l'élément à afficher. Dans Styles, vous pouvez maintenant voir quels styles sont appliqués à votre élément et à partir de quelle classe il lit.