Mehmet Mutlu tarafından yazılmış tüm yazılar

jQuery ve Seçiciler

Daha önce jQuery dünyasına adım atmıştık biliyorsunuz. şimdi de bu dünyayı yakından tanımaya başlayalım. Öncelikle seçiciler konusuyla başlamak istiyorum. Bence jQuery için en önemli konu budur. Neden mi önemli? Çünkü web sayfalamızdaki elemanlara seçiciler sayesinde erişebiliyoruz. Örneğin bir yazının rengini değiştireceksiniz. Peki ama bu yazı web sayfanızın neresinde? Bu yazıyı jQuery’ye nasıl göstereceksiniz ve işleme almasını sağlayacaksınız? işte seçiciler konusu bu yüzden önemli ;)

Seçiciler

jQuery, web sayfamızdaki elemanlara erişmek için birkaç değişik yöntem kullanmakta. Ben bu yöntemleri 5 başlık altında grupladım.

  1. Etiket seçicileri
  2. Öznitelik seçicileri
  3. Css seçicileri
  4. Form seçicileri
  5. Özel seçiciler

Bu seçicilerinin hepsini $('seçici') ifadesinde olduğu gibi kullanmamız gerekiyor. şimdi bu seçicileri ayrı ayrı başlıklar altında inceleyelim.

1. Etiket seçicileri

Web sayfamızda yer alan elemanları HTML etiketlerini kullanarak oluştururuz. Parağraf elemanları oluşturmak için P etiketini, resim elemanları oluşturmak içinse IMG etiketini kullanırız. işte bu elemanlara jQuery ile erişmek için, oluştururken kullandığımız etiket isimlerini aynen kullanıyoruz.

Örneğin web sayfamızdaki bütün parağraf elemanlarını seçmek isteyelim.

 $('p')

Yukarıda yalnızca bir tek etiket seçimi yaptık o da P etiketi idi. Ama biz aynı anda hem P etiketlerini hem de IMG etiketlerini seçmek isteyebiliriz. Birden fazla etiket seçimi yapacaksak etiketler arasına virgül (,) koymamız gerekiyor. Aynen alttaki gibi:

$('p,img')

Tekli ve Çoklu etiketlerin nasıl seçildiklerini öğrendikten sonra sıra geldi içiçe olan etiketleri seçmeye. Örneğin web sayfamızdaki bütün P etiketlerinin içerisinde ne kadar IMG etiketi varsa seçelim.

$('p img')

Bu son kodda dikkat edeceğimiz şey, etiketler arasında boşluk kullandığımızdır.

2. Öznitelik seçicileri

Her HTML etiketi attribute adı verilen özniteliğe sahiptir. Örneğin bir link oluşturmak için A etiketinin href özniteliğini kullanırız. Hatırlamak için hemen bir örnek görelim:

<a href="www.eburhan.com"> link </a>

Bu örnekte “href” ifadesi bir özniteliktir. işte jQuery ile web sayfamızdaki elemanlara özniteliklerini kullanarak da erişebiliyoruz. Bize en çok gerekli olabilecek öznitelik seçicilerine kısaca gözatalım.

  • a[href] ile href özniteliği olan a etiketlerini seçiyoruz.
  • a[href=www.eburhan.com] ile href özniteği “www.eburhan.com” ile tam olarak eşleşen a etiketlerini seçiyoruz.
  • a[href^=www] ile href özniteliği “www” ile başlayan a etiketlerini seçiyoruz.
  • a[href$=com] ile href özniteliği “com” ile biten a etiketlerini seçiyoruz.
  • a[href*=eburhan] ile href özniteliği içerisinde “eburhan” geçen a etiketlerini seçiyoruz.

Öznitelik seçicilerini tek başına kullanabildiğimiz gibi birleştirerek de kullanabiliyoruz. Alttaki örnekte href özniteliği “www” ile başlayan VE yine href özniteliği “com” ile biten a etiketlerini seçmiş oluyoruz:

 $('a[href^=www][href$=com]')

3. Css seçicileri

Css kodlarken kullandığımız yöntemleri, jQuery ile birlikte kullanabiliyoruz. Örneğin bir elemanın id özniteliği metin olsun. Bu elemanı seçmek için şöyle bir kod kullanıyoruz:

$('#metin')

şimdi de class özniteliği maviMetin olan elemanları seçelim.

 $('.maviMetin') 

Bir de etiket seçicileri ile css seçicilerini birarada kullanalım. Örneğin web sayfamızdaki bütün DIV etiketlerini seçelim fakat bu DIV etiketlerinin class özniteliği maviMetin olmak zorunda olsun. işte bu işi yapan kod:

 $('div.maviMetin') 

Elemanların class özniteliğine geri dönelim. Biliyorsunuz ki bir elemana birden fazla class değeri atanabiliyor. Örneğin <div> gibi… Böyle bir durumda class değerlerini biteşik yazarak seçim yapıyoruz.

 $('div.siyah.koyu.buyuk') 

Class özniteliğinde belli bir değeri içermeyen elemanları nasıl seçebiliriz ona bakalım. Örneğin class özniteliğinde koyu değeri bulunmayan elemanları seçmek istersek not ifadesini kullanmalıyız.

 $('div:not(.koyu)') 

Benim anlatacağım css seçileri şimdilik bu kadar (:

4. Form seçicileri

jQuery, form elemanları için birkaç özel seçici tanımlamıştır. Form seçicileri ile form elemanlarına çok kolay bir şekilde erişebiliyoruz.

  • :input
    bütün form elemanları seçer
  • :text
    sadece metin alanlarını seçer (type=”text”)
  • :file
    sadece dosya alanlarını seçer (type=”file”)
  • :password
    sadece parola alanlarını seçer (type=”password”)
  • :radio
    sadece radyo düğmelerini seçer (type=”radio”)
  • :checkbox
    sadece onay kutularını seçer (type=”checkbox”)
  • :submit
    sadece gönder düğmelerini seçer (type=”submit”)
  • :image
    sadece form resimlerini seçer (type=”image”)
  • :reset
    sadece sıfırlama düğmelerini seçer (type=”reset”)
  • :button
    sadece normal düğmeleri seçer (type=”button”)
  • :hidden
    sadece gizlenmiş alanları seçer (type=”hidden”)

Form seçicilerinin nasıl kullanıldığına bakalım. Örneğin web sayfamızdaki id özniteliği iletisim olan bir formun bütün metin alanlarını seçelim. işte kodumuz:

$("#iletisim :input")

Peki hem metin alanlarını hem de onay kutularını seçmek isteseydik?

$("#iletisim :input :checkbox")

Bunlara ek olarak jQuery’de 4 tane daha form seçicisi bulunuyor. Bu ek seçiciler özel durumlar için hazırlanmışlar. Nedir bu özel durumlar? Örneğin formunuzda 10 tane onay kutusu olsun. Ziyaretçinin bunlardan kaç tanesini fare ile işaretlediğini öğrenmek için alttaki :checked seçicisini kullanabiliriz.

  • :enabled
    etkin olan form elemanlarını seçer
  • :disabled
    devre dışı bırakılmış form elemanlarını seçer
  • :checked
    işaretlenmiş olan onay kutularını seçer
  • :selected
    bir açılır menünün (dropdown) seçilmiş değerini alır

5. Özel seçiciler

jQuery bazı elemanlara daha kolay erişebilmemiz için özel seçiciler sunmuştur. Nasıl ki form elemanlarına erişmek için özel form seçicileri kullanıyorsak, diğer elemanlar için de bazı özel seçiciler mevcut.

:even
seçilen elemanları 0′dan başlayarak numaralandırır, daha sonra bu numaralardan çift olanları seçer. Örneğin 5 tane TR etiketi olsun. Bu özel seçici sayesinde 0, 2 ve 4 nolu TR etiketlerini seçebiliriz.

:o dd
seçilen elemanları 0′dan başlayarak numaralandırır, daha sonra bu numaralardan tek olanları seçer. Örneğin 5 tane TR etiketi olsun. Bu özel seçici sayesinde 1 ve 3 nolu TR etiketlerini seçebiliriz.

$('tr:even')   // çift olanlar gelir
$('tr:odd')   // tek olanlar gelir

:eq(2)
Kaçıncı sıradaki elemanı seçeceğimizi belirtir. Örneğin 5 tane DIV etiketi var ama biz 3. sıradakini seçmek istiyoruz. Öyleyse :eq(2) ifadesini kullanmalıyız.

:gt(3)
Greater Than demektir yani birşeyden daha büyük. 5 tane DIV etiketi var ama biz sırası 3′ten büyük olanları seçmek istiyoruz.

:lt(3)
Less Than demektir yani birşeyden daha küçük. 5 tane DIV etiketi var ama biz sırası 3′ten daha küçük olanları seçmek istiyoruz.

$('div:eq(2)') // 3'üncüsünü seç
$('div:gt(3)') // 3'den büyük olanları seç (4,5)
$('div:lt(3)') // 3'den küçük olanları seç (1,2)

:first
Seçmek istediğimiz eleman birden fazla ise “baştakini” seçmiş oluyoruz. Yani :eq(0) seçicisi gibi.

:last
Seçmek istediğimiz eleman birden fazla ise “sondakini” seçmiş oluyoruz.

:contains(‘X’)
içerisinde “X” ifadesi geçen elemanları seçer. Büyük-küçük harfe duyarlıdır. Örneğin içerisinde “erhan burhan” ifadesi geçen tüm paragrafları alttaki gibi seçebiliyoruz.

$(" p:contains('erhan burhan') ")

:visible
Görülebilir olan yani gizlenmemiş olan elemanları seçebilmemizi sağlar. Örneğin css’in bir özelliği olan display:none ile gizlenmiş elemanlara bu seçici ile ulaşamazsınız.

:hidden
Gizlenmiş olan elemanları seçer. Bir üstteki :visible seçicisi ile ters mantıktan çalışır.

$('div:hidden') // gizlenmiş div elemanlarını seç

Sonuç…

Burada anlattığım 5 seçiciden ziyade bir de XPath Seçicileri bulunuyor. Fakat XPath seçicileri, jQuery’nin 1.2 sürümüyle birlikte çekirdek kütüphaneden çıkarıldı ve ayrı bir eklenti olarak sunulmaya başlandı. XPath seçicilerini kullanmak isterseniz ilgili eklentiyi kurmanız gerekecektir.

Yazıyı bitirirken de şunu önemle vurgulamak istiyorum. Ben burada en çok kullanılan seçicilerden bahsettim. Oysa ki jQuery’nin daha fazla seçicisi var. O yüzden mutlaka bu sayfaya gözatmanızı öneririm. Bir sonraki yazımda buradaki seçicileri kullanarak nasıl işlemler yapılabileceğini anlatacağım ;)

kaynak: http://www.eburhan.com/jquery-ve-seciciler/

İnternet Üzerine 16 Çarpıcı Gerçek

İnternet’in boyutları ve internetteki paylaşımlar üzerine uzun süredir detaylı araştımalar yapılıyor. Online Schools tarafından derlenmiş olan rakamlar ise oldukça çarpıcı.

  1. Google yaklaşık olarak 200 Terabyte (2 Milyon Megabyte) veri indeksledi. Bu içerik sadece metin ve yine google’ın tahminlerine göre internetin sadece %0.004′ü
  2. Google internetteki veri miktarını ortalama olarak 5 Milyon Terabayt (5.000.000.000.000.000.000 Byte) olarak görüyor.
  3. Eğer internetteki veri insan beyinlerinde saklansaydı; 1 Milyon insan beynine ihtiyaç olacaktı.
  4. Eğer DVD ler kullanılsaydı 1 Milyardan biraz daha fazla, Blu-ray’ler kullanılsaydı 200 Milyon kadar disk’e ihtiyaç olacaktı.
  5. Dünyanın nüfusunun %5′ini oluşturan Amerika, internet nüfusunun %76.2′sini oluşturuyor.
  6. Hergün 247 Milyar E-posta gönderiliyor. Bunların %80′i (200 Milyar) Spam.
  7. Yılda 90 Trilyon’dan fazla e-posta trafiği oluşuyor.
  8. Amerika nüfusunun %59′u internet ve televizyonu aynı anda kullanıyor.
  9. Ortalama bir genç haftada 31 saatini internette geçiriyor.
  10. 234 Milyon aktif websitesi ve 126 Milyon Blog bulunuyor.
  11. En fazla 21-35 yaş aralığındakiler blog yazıyor ve kadınlar %1′lik bir farkla daha önde.
  12. Kullanıcıların %89′ı günde en az bir kere mobil cihazlarından internete ulaşıyor.
  13. Twitter’in 105 Milyon kayıtlı kullanıcısı var.
  14. Facebook’un 400 Milyondan fazla Aktif kullanıcısı var.
  15. Facebook saniyede 6 Milyon’dan fazla sayfa gösterimi yapıyor, Her dakika 59.000′e yakın resim yükleniyor.
  16. Günde 50 Milyon’dan fazla Tweet yapılıyor. Bu; 3 yıl öncesine göre %1.000.000′lik bir büyüme!

İçeriğinizi Hızlı Bir Şekilde Google’a Tanıtın

Güncel ve özgün içerikle yola çıkmış olan her web sitesinin en büyük düşmanı “içerik hırsızları” olsa gerek. Bazen saatlar boyunca emek verilen bir makalenin “RSS botlarıyla” çalınması bir kaç saniyeyi buluyor. İşte bu sebepten ötürü; içeriğimizi “içerik hırsızlarına” çaldırmamak için olabildiğince hızlı bir şekilde içeriği Google’a indexletmemiz ( tanıtmamız ) gerekiyor. İşte tam bu noktada karşımıza “Ping Servisleri” çıkıyor. Ping Servislerini açıklayarak makalemize giriş yapalım.

Öncelikle içeriğimizi Google’a tanıtmak istiyorsak “ping servislerini”  kullanmamız gerekiyor. Ping servislerinin ne olduğunu açıklamak gerekirse; ping servisleri temelde büyük veri depolarıdır. Her yazı yazıldıktan sonra yazının ping ile beraber gönderilmesiyle birlikte yazıları kendi sistemlerine depolarlar. Eğer bu süreçte – ki genellikle hep oluyor – Google Bot pinglediğiniz site içerisinde ise saniyeler içinde içeriğinizin indexlenmemesi elde değil. Binevi; Google’ın indexlemesi için büyük veri havuzları oluşturuluyor. Genellikle en az PR7 olan bu ping servislerinin PageRank değerlerinin yüksekliğini düşünürsek,Google Bot’un ne kadar sıklıkla sözkonusu siteleri ziyaret edeceğini tahmin edebiliyorsunuzdu.

Elbette bu da sıklıkla suistimal edilen bir durum. Pek çok yabancı ahlaksız içerikteki site her gün milyonlarca ping atarak havuzu doldurmakta,ping sitelerinin bağlı olduğu serverların sistemlerini de-aktif etmektedir. Bu sebeple belli başlı bazı ping sistemleri daimi olarak randıman vermektedir.

WordPress scriptlerin; Ayarlar sekmesinin yan bölümü olan “Yazma” bölümünün altına ping listesi ekleyebilirsiniz. Ayrıca RSS teknolojisiyle desteklenen diğer sistemler için Pingomatic kullanarak ping yollamanız mümkün.

Kısa ancak içerik olarak yararlı bir makalenin sonuna geldik. Aşağıda verdiğimiz listeyi kullanmanız yeterli olacaktır.

Google, Arama Sonuçlarında Breadcrumb Navigasyonu Gösteriyor

Google, iyi optimize edilmiş web sayfalarında Ana Sayfa > Kategori Sayfası > Ürün Sayfası şeklinde gördüğümüz breadcrumb navigasyona çok önem veriyor. Breadcrumb, DMOZ?da da kullanılan bir navigasyon. Breadcrumb sayesinde site içinde bulunduğunuz yer, tek satır gezinti bağlantısı olarak sayfa altında veya üstünde gösteriliyor. Böylece giriş sayfasına veya önceki bölümlere kolayca geçiş yapılabiliyor. Google Bot?da breadcrumb navigasyon sayesinde sitenizi daha iyi crawl edebiliyor ve arama sonuçlarında üst sıralarda çıkartıyor.

Dolayısıyla Google?da breadcrumb bulunan siteleri arama sonuçlarında daha üst sıralarda gösteriyor.

Görünüşe göre Google, breadcrumb navigasyona verdiğini önemi daha da artırmış.

Google.co.uk?den yapılan aramalarda, bu tekniği kullanan sitelerin breadcrumb navigasyonları SERP sonuçlarında görülmeye başlandı. Renault.co.uk sitesinde breadcrumb navigasyonu iyi bir şekilde kullandığı için, arama sonuçlarında daha belirgin görünüyor.

Google?ın şu anda test olarak bazı arama sonuçlarında gösterdiği breadcrumb navigasyonun Google Caffeine?le birlikte daha da sık görüleceği tahmin ediliyor.