2012-06-04 31 views
6

ile seçici:jQuery Bu kodu var belirli bir özellik

$('a').click(
    function() { 
     $("#change_flash").css("display", "block"); $("#my_flash").css("display", "none"); 
    }); 

Ama bu tüm ankraj elemanları için çalışır. Bu betikle sadece rel = "lightbox" özniteliğini içeren ankraj elemanları için etkilemek istiyorum.

Bunu nasıl başarabilirim?

+0

Arama http://stackoverflow.com/q/6246683/411902 ortaya –

cevap

4
$('a[rel="lightbox"]').click(
    function() { 
     $("#change_flash").css("display", "block"); $("#my_flash").css("display", "none"); 
    }); 
5

aşağıdaki kullanın: Bu attribute="value" notasyonu (bkz referanslar) kullanıyor

$('a[rel="lightbox"]').click(
    function(){ 
     // do your stuff here 
    }); 

.

vardır, ayrıca, diğer seçenekler:

  • öznitelik-başlar-ile: attribute^="value",
  • nitelik sonları-ile: attribute$="value",
  • nitelik-içerir: `nitelik * = "değer" .

Not elbette $('[rel="lightbox"]') kendi başına kesinlikle geçerli seçici iken, bu jQuery bağlamak amacıyla bu özelliğe ve değer için sayfadaki her eleman incelemek neden olacağını/click olayı atamak (s); Bu nedenle, jQuery öğesinin eşleşen öğeleri bulmak için arama yapması gereken öğe sayısını sınırlamak amacıyla bir etiket adı, dolayısıyla $('a[rel="lightbox"]'), veya bir sınıf adı kullanmak her zaman en iyisidir.

Modern tarayıcılarda bu 'arama' öğesinin Sizzle'ı kullanmak yerine yerel document.querySelectorAll()'a teslim edildiğini hatırlıyorum, ancak bir tarayıcıya ihtiyaç duyulan iş miktarını sınırlamak en iyisidir.

Referanslar:

+0

lanet, o kadar kolay :) thanx – David

+1

Kesinlikle rica ederim; Biraz yardım aldığım için mutluyum! =) –