ฉันจะตรวจสอบได้อย่างไรว่าไม่มีคลาส ตัวอย่างเช่นฉันรู้วิธีตรวจสอบเพื่อดูว่ามีคลาส "ทดสอบ" แต่ฉันจะตรวจสอบเพื่อดูว่าไม่มีคลาส "ทดสอบ" ได้อย่างไร
if($(this).hasClass("test")){
}
ฉันจะตรวจสอบได้อย่างไรว่าไม่มีคลาส ตัวอย่างเช่นฉันรู้วิธีตรวจสอบเพื่อดูว่ามีคลาส "ทดสอบ" แต่ฉันจะตรวจสอบเพื่อดูว่าไม่มีคลาส "ทดสอบ" ได้อย่างไร
if($(this).hasClass("test")){
}
คำตอบ:
if (!$(this).hasClass("test")) {
คำตอบของ sdleihssirhc นั้นแน่นอนว่าเป็นคำตอบที่ถูกต้องสำหรับคำถามในกรณีนี้ แต่เป็นข้อมูลอ้างอิงถ้าคุณต้องการเลือกองค์ประกอบที่ไม่มีคลาสที่แน่นอนคุณสามารถใช้ตัวเลือกที่ไม่ใช่ :
// select all divs that don't have class test
$( 'div' ).not( ".test" );
$( 'div:not(.test)' ); // <-- alternative
เลือกองค์ประกอบ (หรือกลุ่มองค์ประกอบ) ที่มีคลาส "abc" ไม่มีคลาส "xyz":
$('.abc:not(".xyz")')
เมื่อเลือก CSS .abc:not(.xyz)
ปกติคุณสามารถใช้
ใช้วิธี. not () และตรวจสอบคุณสมบัติ:
$('p').not('[class]');
ตรวจสอบที่นี่: http://jsfiddle.net/AWb79/
คุณสามารถลองสิ่งนี้:
<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.
});
มีสถานการณ์ที่ซับซ้อนมากขึ้นซึ่งสิ่งนี้ไม่ทำงาน จะเป็นอย่างไรถ้าคุณต้องการเลือกองค์ประกอบที่มีคลาส A ที่ไม่มีองค์ประกอบที่มีคลาส B คุณต้องมีอะไรเพิ่มเติม:
อ่านผ่าน 6 ปีนี้ในภายหลังและคิดว่าฉันจะแฮ็กมันเช่นกันในTIMTOWTDI vein ... : D หวังว่ามันจะไม่ถูกต้อง 'JS มารยาท'
ฉันมักจะตั้งค่า var ที่มีเงื่อนไขและจากนั้นอ้างอิงในภายหลังใน .. eie;
// 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) {
//
}
}
แม้ว่าฉันควรพูดถึงว่าฉันทำเช่นนี้เพราะฉันส่วนใหญ่ใช้ประกอบการประกอบเงื่อนไขและต้องการรหัสที่สะอาด ดังนั้นในกรณีนี้ทั้งหมดที่ฉันมีคือ:
hC ? '' : foo(x, n) ;
// OR -----------
!hC ? foo(x, n) : '' ;
... แทนสิ่งนี้:
$this.hasClass("test") ? '' : foo(x, n) ;
// OR -----------
(!$this.hasClass("test")) ? foo(x, n) : '' ;
ฉันไม่รู้ว่าทำไม แต่คำตอบที่ยอมรับนั้นใช้ไม่ได้สำหรับฉัน สิ่งนี้ใช้ได้ผล:
if ($(this).hasClass("test") !== false) {}
if($(this).is(":not(.test)"))
> :)