ค้นหาเว็บไซต์

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]') 

บทความที่เกี่ยวข้อง