Czy zamiast pojedynczego wywoływania $("#item").removeClass()
każdej klasy, jaką może mieć element, istnieje jedna funkcja, którą można wywołać, która usuwa wszystkie klasy CSS z danego elementu?
Działa zarówno jQuery, jak i surowy JavaScript.
Czy zamiast pojedynczego wywoływania $("#item").removeClass()
każdej klasy, jaką może mieć element, istnieje jedna funkcja, którą można wywołać, która usuwa wszystkie klasy CSS z danego elementu?
Działa zarówno jQuery, jak i surowy JavaScript.
Odpowiedzi:
$("#item").removeClass();
Wywołanie removeClass
bez parametrów usunie wszystkie klasy przedmiotu.
Możesz także użyć (ale niekoniecznie jest to zalecane, poprawny sposób to ten powyżej):
$("#item").removeAttr('class');
$("#item").attr('class', '');
$('#item')[0].className = '';
Jeśli nie masz jQuery, byłaby to prawie jedyna opcja:
document.getElementById('item').className = '';
If a class name is included as a parameter, then only that class will be removed from the set of matched elements. If no class names are specified in the parameter, all classes will be removed.
api.jquery.com/removeclass
Poczekaj, czy funkcja removeClass () nie usuwa domyślnie wszystkich klas, jeśli nie określono nic konkretnego? Więc
$("#item").removeClass();
zrobi to samo ...
Wystarczy ustawić className
atrybut rzeczywistego elementu DOM na ''
(brak).
$('#item')[0].className = ''; // the real DOM element is at [0]
Edycja: Inne osoby powiedziały, że samo dzwonienie removeClass
działa - przetestowałem to za pomocą Google JQuery Playground: http://savedbythegoog.appspot.com/?id=ag5zYXZlZGJ5dGhlZ29vZ3ISCxIJU2F2ZWRDb2RlGIS61gEM ... i działa. Możesz to zrobić w ten sposób:
$("#item").removeClass();
Heh, przyszedł szukać podobnej odpowiedzi. To mnie uderzyło.
Usuń określone klasy
$('.class').removeClass('class');
Powiedz, czy element ma klasę = "class another-class"
Możesz po prostu spróbować
$(document).ready(function() {
$('body').find('#item').removeClass();
});
Jeśli musisz uzyskać dostęp do tego elementu bez nazwy klasy, na przykład musisz dodać nową nazwę klasy, możesz to zrobić:
$(document).ready(function() {
$('body').find('#item').removeClass().addClass('class-name');
});
Używam tej funkcji w moim projekcie do usuwania i dodawania klas w kreatorze HTML. Powodzenia.
1.
// remove all items all class
const items = document.querySelectorAll('item');
for (let i = 0; i < items.length; i++) {
items[i].className = '';
}
2)
// only remove all class of first item
const item1 = document.querySelector('item');
item1.className = '';
$("#item").removeClass();
$("#item").removeClass("class1 ... classn");
Ponieważ nie wszystkie wersje jQuery są sobie równe, możesz napotkać ten sam problem, który zrobiłem, co oznacza wywołanie $ („# item”). RemoveClass (); tak naprawdę nie usuwa klasy. (Prawdopodobnie błąd)
Bardziej niezawodną metodą jest po prostu użycie surowego JavaScript i całkowite usunięcie atrybutu klasy.
document.getElementById("item").removeAttribute("class");
Spróbuj z removeClass
Na przykład :
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>
Skorzystajmy z tego przykładu. Być może chcesz, aby użytkownik Twojej witryny wiedział, że pole jest prawidłowe lub wymaga uwagi poprzez zmianę koloru tła pola. Jeśli użytkownik naciśnie przycisk reset, kod powinien zresetować tylko pola zawierające dane i nie zawracać sobie głowy zapętlaniem wszystkich innych pól na stronie.
Ten filtr jQuery usunie klasę „highlightCriteria” tylko dla danych wejściowych lub wybierze pola, które mają tę klasę.
$form.find('input,select').filter(function () {
if((!!this.value) && (!!this.name)) {
$("#"+this.id).removeClass("highlightCriteria");
}
});
Miałem podobny problem. W moim przypadku na wyłączone elementy zastosowano klasę aspNetDisabled, a wszystkie wyłączone kontrolki miały niewłaściwe kolory. Użyłem jquery do usunięcia tej klasy z każdego elementu / kontrolki, którego nie chcę i wszystko działa i wygląda teraz świetnie.
Oto mój kod do usuwania klasy aspNetDisabled:
$(document).ready(function () {
$("span").removeClass("aspNetDisabled");
$("select").removeClass("aspNetDisabled");
$("input").removeClass("aspNetDisabled");
});
attr()
wersja nie powinna byćprop()
teraz?