javascript - jQuery "ตัวเลือก 'ไม่มี attribute'"?
ฉันสามารถหาตัว div ที่มีแอตทริบิวต์แบบนี้ได้:
$('.funding-plan-container[data-timestamp]')
แต่ถ้าฉันพยายามหาดิฟที่ไม่มีแอตทริบิวต์นั้น ฉันจะได้รับข้อผิดพลาด - โค้ดของฉันคือ:
$('.funding-plan-container[!data-timestamp]')
มีตัวเลือก "ไม่มี attribute" ใน jQuery หรือไม่?
สำหรับการอ้างอิง กรณีการใช้งานที่นี่คือ div ใดๆ ที่ไม่มีแอตทริบิวต์ timestamp จะไม่ได้ถูกเพิ่มแบบไดนามิก และดังนั้นจึงมีประโยชน์
ขอบคุณ!
คำตอบ #1
ใช้ตัวเลือก :not()
$('.funding-plan-container:not([data-timestamp])')
โดยทางนี้ นี่เป็นตัวเลือก Selectors API ที่ถูกต้อง ดังนั้นมันจึงไม่จำเพาะเจาะจงกับ jQuery มันจะทำงานกับ querySelectorAll() และใน CSS ของคุณ (ถ้าเบราว์เซอร์รองรับ)
คำตอบ #2
คุณสามารถกรองตัวเลือกโดยการใช้ .not() หรือ :not() ตัวเลือก
$('.funding-plan-container:not([data-timestamp])').
หรือ
$('.funding-plan-container').not('[data-timestamp]')
