În loc de individual de asteptare `$("#produs").removeClass () pentru fiecare clasa un element ar putea fi, există o singură funcție care poate fi numit, care elimină toate clasele CSS din element dat?
Ambele jQuery si JavaScript brut va lucra.
$("#item").removeClass();
Sun `removeClass cu parametrii va elimina tot elementul's clase.
Puteți folosi, de asemenea, (dar nu este neapărat recomandat, corect cum este cea de mai sus):
$("#item").removeAttr('class');
$("#item").attr('class', '');
$('#item')[0].className = '';
Dacă ai n't au jQuery, atunci acest lucru ar fi cam singura optiune:
document.getElementById('item').className = '';
Doar seta code
atributul de real DOM element''
(nimic).
$('#item')[0].className = ''; // the real DOM element is at [0]
Edit: Alte persoane au spus că doar de asteptare pentru removeClass` lucrări - am testat acest lucru cu Google JQuery loc de Joaca: http://savedbythegoog.appspot.com/?id=ag5zYXZlZGJ5dGhlZ29vZ3ISCxIJU2F2ZWRDb2RlGIS61gEM ... și funcționează. Astfel încât să puteți face, de asemenea, în acest fel:
$("#item").removeClass();
Puteți încerca doar
$(document).ready(function() {
$('body').find('#item').removeClass();
});
Dacă aveți de acces la acel element fără de nume de clasă, de exemplu, va trebui să adăugați un nou nume de clasă, poți face asta:
$(document).ready(function() {
$('body').find('#item').removeClass().addClass('class-name');
});
Eu folosesc această funcție în projet de a elimina și se adaugă clasa într-un html constructor. Noroc.
// remove all items all class
const items = document.querySelectorAll('item');
for (let i = 0; i < items.length; i++) {
items[i].className = '';
}
// only remove all class of first item
const item1 = document.querySelector('item');
item1.className = '';
$("#produs").removeClass();
$("#produs").removeClass("class1 ... classn");
Las's a folosi acest exemplu. Poate vrei utilizatorul de site-ul dvs. să știți un câmp este valabil sau că are nevoie de atenție prin schimbarea culorii de fundal din domeniu. Dacă utilizatorul hit-uri de resetare, apoi codul ar trebui să reseta numai câmpurile care au date și nu deranjez pentru a bucla prin fiecare alt domeniu pe pagina ta.
Acest filtru de jQuery va elimina clasa "highlightCriteria" doar pentru de intrare sau selectați câmpurile care au această clasă.
$form.find('input,select').filter(function () {
if((!!this.value) && (!!this.name)) {
$("#"+this.id).removeClass("highlightCriteria");
}
});
Deoarece nu toate versiunile de jQuery sunt create egal, aveți dreptul să executați în aceeași problemă am făcut ceea ce înseamnă că sun $("#produs").removeClass(); nu elimina de fapt clasa. (Probabil un bug)
O metodă mai sigură este de a folosi pur și simplu crud JavaScript și elimina atributul de clasă cu totul.
document.getElementById("item").removeAttribute("class");
încercați cu removeClass`
De exemplu:
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>
Am avut aceeași problemă. În cazul meu pe turiști cu elemente a fost aplicat acest aspNetDisabled clasă și toate dezactivat controale au avut culori greșite. Deci, am folosit jquery pentru a elimina această clasă pe fiecare element/control n și totul funcționează și arată foarte bine acum.
Acesta este codul meu pentru eliminarea aspNetDisabled clasa:
$(document).ready(function () {
$("span").removeClass("aspNetDisabled");
$("select").removeClass("aspNetDisabled");
$("input").removeClass("aspNetDisabled");
});