Sınıf olup olmadığını nasıl kontrol ederim. Örneğin, sınıf "test" olup olmadığını kontrol etmek nasıl biliyorum, ama sınıf "test" olup olmadığını görmek için nasıl kontrol edebilirim?
if($(this).hasClass("test")){
}
Sınıf olup olmadığını nasıl kontrol ederim. Örneğin, sınıf "test" olup olmadığını kontrol etmek nasıl biliyorum, ama sınıf "test" olup olmadığını görmek için nasıl kontrol edebilirim?
if($(this).hasClass("test")){
}
Yanıtlar:
if (!$(this).hasClass("test")) {
sdleihssirhc'in cevabı elbette sorudaki durum için doğru olanıdır, ancak belirli bir sınıfa sahip olmayan öğeleri seçmeniz gerekiyorsa, referans olarak değil, seçici seçemezsiniz :
// select all divs that don't have class test
$( 'div' ).not( ".test" );
$( 'div:not(.test)' ); // <-- alternative
"Abc" sınıfına sahip, "xyz" sınıfına sahip olmayan öğeyi (veya öğe grubunu) seçin:
$('.abc:not(".xyz")')
Normal CSS seçerken kullanabilirsiniz .abc:not(.xyz)
.
.not () yöntemini kullanın ve bir özellik olup olmadığını kontrol edin:
$('p').not('[class]');
Buradan kontrol edin: http://jsfiddle.net/AWb79/
Bunu deneyebilirsiniz:
<div id="div1" class="myClass">there is a class</div>
<div id="div2"> there is no class2 </div>
$(document).ready(function(){
$("#div2").not('.myClass'); // do not have `myClass` class.
});
Bunun işe yaramadığı daha karmaşık senaryolar var. A sınıfı B öğesi olan öğeler içermeyen bir öğe seçmek isterseniz, sonuç olarak aşağıdaki gibi bir şeye ihtiyacınız olur:
Bu 6 yıl sonra okuma ve TIMTOWTDI damarında da bir kesmek olacağını düşündüm ...: D, yanlış 'JS görgü kuralları' değil umuyorum.
Ben genellikle durumu ile bir var kurmak ve sonra daha sonra bakın .. ben;
// var set up globally OR locally depending on your requirements
var hC;
function(el) {
var $this = el;
hC = $this.hasClass("test");
// use the variable in the conditional statement
if (!hC) {
//
}
}
Ben esas olarak koşullu üçlü operatörü kullanmak ve temiz kod istiyorum çünkü bunu yapmak bahsetmek gerekir. Yani bu durumda, sahip olduğum tek şey şu:
hC ? '' : foo(x, n) ;
// OR -----------
!hC ? foo(x, n) : '' ;
...bunun yerine:
$this.hasClass("test") ? '' : foo(x, n) ;
// OR -----------
(!$this.hasClass("test")) ? foo(x, n) : '' ;
Nedenini bilmiyorum ama kabul edilen cevap benim için işe yaramadı. Bunun yerine bu işe yaradı:
if ($(this).hasClass("test") !== false) {}
if($(this).is(":not(.test)"))
> :)