selektor jQuery na etykiecie wyboru

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

Jeśli mam pole wyboru z etykietą opisującą go, jak mogę wybrać etykietę przy użyciu jQuery? Byłoby łatwiej dać Etykieta identyfikator i zaznaczyć, że przy użyciu $(#labelId)?

Utwórz 27/07/2009 o 05:21
źródło użytkownik
W innych językach...                            


5 odpowiedzi

głosy
390

To powinno działać:

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

Zobacz także: Selektory / attributeEquals - Biblioteka jQuery JavaScript

Odpowiedział 27/07/2009 o 05:23
źródło użytkownik

głosy
41

Należy to zrobić:

$("label[for=comedyclubs]")

Jeśli masz non znaków alfanumerycznych w id wtedy musisz otoczyć jego wartość w ciekawy z cytatami:

$("label[for='comedy-clubs']")
Odpowiedział 27/07/2009 o 05:23
źródło użytkownik

głosy
5

Innym rozwiązaniem mogłoby być:

$("#comedyclubs").next()
Odpowiedział 02/02/2011 o 11:23
źródło użytkownik

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

Powinno to pozwolić na wybranie etykiety dla wszystkich pól w pętli, jak również. Wszystko co jest potrzebne do zapewnienia etykiety powinien powiedzieć for='FIELD', gdzie FIELDjest id pola, dla których ta etykieta jest zdefiniowana.

Odpowiedział 03/08/2012 o 08:08
źródło użytkownik

głosy
0

Dzięki Kip, dla tych, którzy mogą być patrząc na osiągnięcie tych samych $ za pomocą (to), podczas iteracji lub kojarzenia w obrębie funkcji:

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

Spojrzałem na chwilę podczas pracy tego projektu, ale nie mógł znaleźć dobry przykład, więc mam nadzieję, że to pomoże innym, którzy mogą być patrząc rozwiązać ten sam problem.

W powyższym przykładzie, moim celem było ukryć wejść radiowych i styl etykiet, aby zapewnić płaszcz doświadczenia użytkownika (zmiana orientacji na schemacie).

Można zobaczyć przykład tutaj

Jeśli podoba Ci przykład, tutaj jest css:

.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;}

a odpowiednia część JavaScript:

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

Alternatywny korzeń do pierwotnego pytania, podane na etykiecie następujące dane wejściowe, można przejść z czystym roztworze CSS i JavaScript w ogóle unikać ...:

input[type=checkbox]:checked+label {}
Odpowiedział 05/03/2017 o 09:50
źródło użytkownik

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