jQuery’nin en büyük avantajlarından birisi seçici kullanımının basitiliğidir. CSS seçicilerini javascript’e kazandıran bu kullanım kolaylığı sizzle kütüphanesinden gelir. Javascript bu konuda daha sığ ve beceriksiz kaldı. Tabi sonra işler değişti ve artık aynı yeteneklere sahip.
Seçicilerdeki bu büyük atılımı sağlayan iki özellik var querySelector ve querySelectorAll.
Element.querySelector()
Belirtilen öğenin ilk alt elemanını döndürür.
Buradaki secici kısmında aklınıza gelecek tüm CSS seçicileri konabiliyor. İşte süperlik buradan kaynaklanıyor. a:before
, p[title]
, p > span
, ul li ~ li
, vs.
Eğer element bulunamazsa null
değeri döner.
Element.querySelectorAll()
Belirtilen öğe grubunun tüm alt elemanlarını döndürür.
Buradaki seciciler kısmında aklınıza gelecek tüm CSS seçicileri konabiliyor.
Yukarıdaki özelliğin çoklusu. Bu seçici sonucunda bir dizi element döner.
aktif eleman altındaki tüm paragrafları yakalamamızı sağlar.
Tarayıcı desteği konusunda da çok iyi bir durumdalar. IE8+ destekleri var.
Javascript seçicilerini iki gruba ayıracağız.
- Ana eleman seçicileri
- DOM ilişkilerine dayanan seçiciler
Ana eleman seçicileri
CSS derslerinden alışık olduğumuz gibi seçiciler javascript dünyasında da önemli bir yere sahiptir. Kod yazarlarının en çok kullandığı araçlardan biridir seçiciler. Seçiciler ne kadar gelişmiş olursa, bizlere kod yazarken o kadar rahatlık sağlıyor.
Tekil (ID) seçiciler
CSS’den alışık olduğumuz ID seçiciler sayfada bir tane bulunan bir elemanı yakalamak için kullanılır. En büyük avanatjı hızdır.
Sayfamızda tek bir trabzon id’li elemanı yakalamak için
jQuery ile
Javascript ile
Tarayıcı desteğinin IE5.5+ olması ne kadar eski olduğunu gösteriyor.
veya
her ne kadar daha yavaş olasa da bir tercih olarak kenarda dursun.
Sınıf (class) seçicileri
Sayfada birden fazla elemanı yakalamk için kullandığımız HTML özniteliğidir.
jQuery ile
Javascript ile
Bu seçici tüm class=”sehir” tanımlı elemanları bulur ve bize bir dizi olarak döner.
Tüm yeni nesil tarayıcılar ve IE8+ desteği vardır.
veya
her ne kadar daha yavaş olasa da bu da bir tercih.
Etiket (tag) seçicisi
HTML etiketlerini kullanarak seçim yapmamızı sağlar.
jQuery
Javascript ile
Bu seçici tüm <div>
etiketli elemanları bulur ve bize bir dizi olarak döner.
IE5.5+ desteği var.
veya
her ne kadar daha yavaş olasa da bu da bir tercih.
Öznitelik (attribute) seçicileri
Özellik Seçicileri HTML dokümanlarındaki seçilen etiketin özelliklerine veya özellik değerlerine göre seçim yapmamızı sağlar.
jQuery ile
Javascript ile
jQuery benzer bir kullanım var.
Sözde sınıf (Pseudo-class) seçicileri
Aslında bir HTML sınıfı olmamasına rağmen sözde olarak oluşturulan sınıfları yakalamak için kullanılır. CSS’ten alışık olduğumuz bir seçici.
jQuery ile
Javascript ile
Süper değil mi?
Sonuç
jQuery’nin elindeki en büyük kozlardan birisi olan kolay seçici kullanımını aynı kolaylık ile javascript ile yapabiliyor olmak sevindirici.
Bir sonraki yazımda DOM ilişkilerine dayanan seçicilerden bahsedeceğim.
Kalın sağlıcakla.
Kaynaklar
- https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByTagName
- https://blog.garstasio.com/you-dont-need-jquery/selectors/
- https://developer.mozilla.org/en-US/docs/Web/API/Element/querySelector
- https://developer.mozilla.org/en-US/docs/Web/API/Element/querySelectorAll
- https://gomakethings.com/