Bir onay kutusu etiket için jQuery seçici

oy
214
<input type=checkbox name=filter id=comedyclubs/>
<label for=comedyclubs>Comedy Clubs</label>

Bunu açıklayan bir etiket ile bir onay kutusu varsa nasıl jQuery kullanarak etiket seçebilir? Etiketin bir kimlik etiketi ve kullanma o seçmek vermek daha kolay olurdu $(#labelId)?

Oluştur 27/07/2009 saat 05:21
kaynak kullanıcı
Diğer dillerde...                            


5 cevaplar

oy
390

Bu çalışmalı:

$("label[for='comedyclubs']")

Ayrıca bakınız: Seçiciler / attributeEquals - jQuery JavaScript Kütüphanesi

Cevap 27/07/2009 saat 05:23
kaynak kullanıcı

oy
41

Bu yapmalı:

$("label[for=comedyclubs]")

Eğer id olmayan alfanümerik karakterler varsa o zaman tırnak attr değerini içine gerekir:

$("label[for='comedy-clubs']")
Cevap 27/07/2009 saat 05:23
kaynak kullanıcı

oy
5

Başka bir çözüm olabilir:

$("#comedyclubs").next()
Cevap 02/02/2011 saat 11:23
kaynak kullanıcı

oy
63
$("label[for='"+$(this).attr("id")+"']");

Bu siz de bir döngü içinde tüm alanlar için etiketleri seçmek için izin vermelidir. Eğer sağlamak için gereken tek şey etiketler demeliyim olduğu for='FIELD'yerlerde FIELDbu etiketin tanımlanmış olan kendisi için alanın kimliğidir.

Cevap 03/08/2012 saat 08:08
kaynak kullanıcı

oy
0

Teşekkür Kip, yineleme ya bir işlev içinde ilişkilendirerek iken aynı kullanarak $ (this) elde etmek için arıyor olabilir olanlar için:

$("label[for="+$(this).attr("id")+"]").addClass( "orienSel" );

Bu projeyi çalışan iken bir süre baktı ama bu aynı sorunu çözmek için arıyor olabilir başkalarına yardımcı olur umarım böylece iyi bir örnek bulamadık.

Yukarıdaki örnekte, benim hedefi radyo girişlerini gizlemek ve bir yağmurluk kullanıcı deneyimi (akış şeması yönünü değiştirerek) sağlamak için etiketleri stil oldu.

Sen olabilir burada bir örnek görmek

Eğer örnek isterseniz, buraya css geçerli:

.orientation {      position: absolute; top: -9999px;   left: -9999px;}
    .orienlabel{background:#1a97d4 url('http://www.ifreight.solutions/process.html/images/icons/flowChart.png') no-repeat 2px 5px; background-size: 40px auto;color:#fff; width:50px;height:50px;display:inline-block; border-radius:50%;color:transparent;cursor:pointer;}
    .orR{   background-position: 9px -57px;}
    .orT{   background-position: 2px -120px;}
    .orB{   background-position: 6px -177px;}

    .orienSel {background-color:#323232;}

ve JavaScript ilgili kısmı:

function changeHandler() {
    $(".orienSel").removeClass( "orienSel" );
    if(this.checked) {
        $("label[for="+$(this).attr("id")+"]").addClass( "orienSel" );
    }
};

Etiket verilen orijinal soruya alternatif kök, giriş izler, sen ... bir saf css çözeltisi ile gidip tamamen JavaScript kullanarak önleyebilirsiniz:

input[type=checkbox]:checked+label {}
Cevap 05/03/2017 saat 09:50
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more