Réponses:
Vous pouvez définir la classe (quelle qu'elle soit ) en utilisant .attr()
, comme ceci:
$("#td_id").attr('class', 'newClass');
Si vous souhaitez ajouter une classe, utilisez .addclass()
plutôt, comme ceci:
$("#td_id").addClass('newClass');
Ou un moyen rapide d'é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' class
attribut .
.closest('td')
place de .parents('td:first')
:)
I want to be able to do this while inside the click event of some other dom object. How do I grab the td's id and change its class?
- peut-être que je le lis mal, peut-être qu'il veut dire utiliser l'identifiant du td pour changer de classe ...
<td>
question en question :)
change_me
partie est facultative si vous utiliseztoggleClass()
Je pense qu'il veut remplacer un nom de classe.
Quelque chose comme ça fonctionnerait:
$(document).ready(function(){
$('.blue').removeClass('blue').addClass('green');
});
depuis http://monstertut.com/2012/06/use-jquery-to-change-css-class/
Vous pouvez le faire:
$("#td_id").removeClass('Old_class');
$("#td_id").addClass('New_class');
Ou vous pouvez le faire
$("#td_id").removeClass('Old_class').addClass('New_class');
Vous pouvez consulter addClass ou toggleClass
Donc, vous voulez le changer QUAND il est cliqué ... laissez-moi parcourir tout le processus. Supposons que votre "objet DOM externe" soit une entrée, comme une sélection:
Commençons par ce 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())});
});
Maintenant, chaque fois que vous choisissez quelque chose dans la sélection, il trouvera automatiquement une cellule avec le texte correspondant, vous permettant de renverser tout le processus basé sur l'ID. Bien sûr, si vous vouliez le faire de cette façon, vous pourriez facilement modifier le script pour utiliser des ID 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!
ÉDITER:
Si vous dites que vous le modifiez à 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');
<td>
, bien qu'il puisse être, relisez attentivement :)
cette méthode fonctionne bien pour moi
$('#td_id').attr('class','new class');
changer de classe en utilisant jquery
essaye ça
$('#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');
Je ferais mieux d'utiliser le .prop pour changer le className et cela a parfaitement fonctionné:
$(#td_id).prop('className','newClass');
pour cette ligne de code il 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');
Soit dit en passant, lorsque vous souhaitez rechercher le style appliqué à n'importe quel élément, vous cliquez simplement sur F12 dans votre navigateur lorsque votre page est affichée, puis sélectionnez dans l'onglet de l'explorateur DOM, l'élément que vous souhaitez voir. Dans Styles, vous pouvez maintenant voir quels styles sont appliqués à votre élément et dans quelle classe sa lecture.
var $td = $(this).parents('td:first')
] puis obtient son id [var id = $td.attr('id');
] et aussi la classe [var class = $td.attr('class');
] parce qu'il veut qu'un élément click à l'intérieur du TD le déclenche