Z:
if(element.hasClass("class"))
Mogę sprawdzić jedną klasę, ale czy istnieje łatwy sposób sprawdzenia, czy „element” ma jedną z wielu klas?
Ja używam:
if(element.hasClass("class") || element.hasClass("class") ... )
Co nie jest takie złe, ale myślę o czymś takim:
if(element.hasClass("class", "class2")
Co niestety nie działa.
Czy jest coś takiego?
.hasClass()
ale wydaje się, że twoje rozwiązanie załatwiło sprawę , dzięki$('element').is('.class1.class2')
nie.class1.class2
dopasuje elementy, które mają obie klasy, ale szukały elementów pasujących do którejkolwiek z klas.działa, ale jest o 35% wolniejszy niż
Jeśli wątpisz w to, co mówię, możesz to zweryfikować jsperf.com .
Mam nadzieję, że to komuś pomoże.
źródło
Powinno to zrobić, proste i łatwe.
źródło
filter () to kolejna opcja
źródło
Co powiesz na to?
źródło
oto odpowiedź zgodna ze składnią
nie jest to najszybsze, ale jest jednoznaczne i preferowane przeze mnie rozwiązanie. ławka: http://jsperf.com/hasclasstest/10
źródło
Error: $self is not defined
var $self = $(this);
tuż przed pętlą forA co z tym,
Łatwy w użyciu,
Wydaje się, że działa szybciej, http://jsperf.com/hasclasstest/7
źródło
Co powiesz na:
źródło
> 0
. Jeśli długość jest różna od zera, zwróci true.jQuery
Vanilla JS
źródło
użyj domyślnej funkcji match () js:
aby użyć zmiennych w wyrażeniu regularnym, użyj tego:
tak przy okazji, to najszybszy sposób: http://jsperf.com/hasclass-vs-is-stackoverflow/22
źródło
Pracuje dla mnie:
źródło
Możesz to zrobić w ten sposób:
źródło
To zadziałało dla mnie:
źródło
$('.class1.class2')
brak konieczności używania selektora atrybutu dla drugiej klasy. Powstaje również pytanie, jak wybrać element według jednej z dowolnych, nie wszystkich klas.