Jak ustalić, czy istnieje .attr('class')
?jQuery sprawdź czy istnieje klasa Attr?
Używam tego kodu:
if(jQuery(this).attr('class') != undefined && jQuery(this).hasClass('myclass')) {
//Do something
}
To nie wydają się działać.
Jak ustalić, czy istnieje .attr('class')
?jQuery sprawdź czy istnieje klasa Attr?
Używam tego kodu:
if(jQuery(this).attr('class') != undefined && jQuery(this).hasClass('myclass')) {
//Do something
}
To nie wydają się działać.
To zależy od tego, co chcesz. Chcesz sprawdzić, czy element posiada atrybut klasy, takie jak:
<div class></div>
<div class=""></div>
<div class="abc"></div>
Jeśli tak, zastosowanie:
if ($('div').attr('class') != undefined)...
Jeśli chcesz sprawdzić, czy element ma określoną klasę, używać:
if ($('div').hasClass('abc'))...
Wartość zwracana, jeśli klasa atrybutu nie istnieje, jest pusta lub jest pusta.
ten kod działa faktycznie: fiddle
HTML:
<div></div>
<div class="myclass"></div>
<div class="blah"></div>
<div></div>
<div class="myclass"></div>
<div class="myclass"></div>
<div></div>
<div class="myclass andAnotherClass"></div>
JS:
$("div").each(function(){
if(jQuery(this).attr('class') != undefined && jQuery(this).hasClass('myclass')) {
jQuery(this).html("I have it");
} else {
jQuery(this).html("I don't have it");
}
});
Spróbuj ..
if(jQuery('#id1').attr('class') =="") { alert($('#id1').attr('class')); }
<div id="id1">test</div>
Można sprawdzić, czy element z każdej klasy istnieje tylko przez wywołanie „długości "na obiekcie jquery.
$('.myclass').length
Zastanawiasz się, dlaczego sprawdzasz, czy istnieje klasa attr. "hasClass" sprawdzi, czy ma klasę i zwykle wystarcza – locrizak
czy sprawdzi czy jest to "niezdefiniowana" jednak? – Tom
@ Tom: Funkcja wykonuje to, co mówi. Jeśli atrybut 'class' nie istnieje lub jest pusty, to oczywiście element nie ma klasy. Dlaczego po prostu tego nie spróbujesz: http://jsfiddle.net/sP9YR/ –