Au lieu d'appeler individuellement $("#item").removeClass()
pour chaque classe qu'un élément peut avoir, existe-t-il une seule fonction pouvant être appelée permettant de supprimer toutes les classes CSS de l'élément donné?
JQuery et JavaScript brut fonctionneront.
$("#item").removeClass();
L'appel de removeClass
sans paramètre supprimera toutes les classes de l'élément.
Vous pouvez également utiliser (mais ce n’est pas nécessairement recommandé, la méthode correct est celle indiquée ci-dessus):
$("#item").removeAttr('class');
$("#item").attr('class', '');
$('#item')[0].className = '';
Si vous n'aviez pas jQuery, ce serait pratiquement votre seule option:
document.getElementById('item').className = '';
Attendez, removeClass () ne supprime-t-il pas par défaut toutes les classes si rien de spécifique n'est spécifié? Alors
$("#item").removeClass();
le fera tout seul ...
Bien sûr.
$('#item')[0].className = '';
// or
document.getElementById('item').className = '';
Il suffit de définir l'attribut className
de l'élément DOM réel sur ''
(rien).
$('#item')[0].className = ''; // the real DOM element is at [0]
Modifier: D'autres personnes ont déjà déclaré que le simple fait d'appeler removeClass
fonctionnait - j'ai testé cela avec Google JQuery Playground: http://savedbythegoog.appspot.com/?id=ag5zYXZlZGJ5dGhlZ29vZ3ISCxIJU2F2ZWRDb2RlGIS61gEM ... et ça marche. Donc, vous pouvez aussi le faire de cette façon:
$("#item").removeClass();
La méthode la plus courte
$('#item').removeAttr('class').attr('class', '');
Heh, est venu chercher une réponse similaire. Puis ça m'a frappé.
Supprimer des classes spécifiques
$('.class').removeClass('class');
Dire si l'élément a class = "class another-class"
$('#Elm').removeAttr('class');
la classe d'attr ne sera plus présente dans "Elm".
Vous pouvez juste essayer
$(document).ready(function() {
$('body').find('#item').removeClass();
});
Si vous devez accéder à cet élément sans nom de classe, par exemple, vous devez ajouter un nouveau nom de classe, vous pouvez le faire:
$(document).ready(function() {
$('body').find('#item').removeClass().addClass('class-name');
});
J'utilise cette fonction dans mon projet pour supprimer et ajouter une classe dans un générateur HTML. Bonne chance.
Etant donné que toutes les versions de jQuery ne sont pas égales, vous pouvez rencontrer le même problème que moi, à savoir appeler $ ("# item"). RemoveClass (); ne supprime pas réellement la classe. (Probablement un bug)
Une méthode plus fiable consiste simplement à utiliser du code JavaScript brut et à supprimer complètement l'attribut de classe.
document.getElementById("item").removeAttribute("class");
essayez avec removeClass
Par exemple :
var nameClass=document.getElementsByClassName("clase1");
console.log("after", nameClass[0]);
$(".clase1").removeClass();
var nameClass=document.getElementsByClassName("clase1");
console.log("before", nameClass[0]);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="clase1">I am Div with class="clase1"</div>
Utilisons cet exemple. Vous voulez peut-être que l'utilisateur de votre site Web sache qu'un champ est valide ou qu'il nécessite une attention particulière en modifiant la couleur d'arrière-plan du champ. Si l'utilisateur clique sur réinitialiser, votre code ne doit réinitialiser que les champs contenant des données et éviter de parcourir en boucle tous les autres champs de votre page.
Ce filtre jQuery supprimera la classe "highlightCriteria" uniquement pour l'entrée ou sélectionnez les champs qui ont cette classe.
$form.find('input,select').filter(function () {
if((!!this.value) && (!!this.name)) {
$("#"+this.id).removeClass("highlightCriteria");
}
});