selector jQuery pentru eticheta o casetă de selectare

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

Dacă am o casetă de validare cu o etichetă de descriere, cum pot selecta eticheta folosind jQuery? Ar fi mai ușor pentru a obține eticheta eticheta un ID și selectați care utilizează $(#labelId)?

Întrebat 27/07/2009 la 05:21
sursa de către utilizator
În alte limbi...                            


5 răspunsuri

voturi
390

Acest lucru ar trebui să funcționeze:

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

A se vedea , de asemenea: Căutători / attributeEquals - jQuery JavaScript Library

Publicat 27/07/2009 la 05:23
sursa de către utilizator

voturi
41

Acest lucru ar trebui să o facă:

$("label[for=comedyclubs]")

Dacă aveți de caractere non-alfanumerice în id-ul dvs., atunci trebuie să înconjoare valoarea Attr cu citate:

$("label[for='comedy-clubs']")
Publicat 27/07/2009 la 05:23
sursa de către utilizator

voturi
5

O altă soluție ar putea fi:

$("#comedyclubs").next()
Publicat 02/02/2011 la 11:23
sursa de către utilizator

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

Acest lucru ar trebui să permită să selectați etichetele pentru toate domeniile într - o buclă, de asemenea. Tot ce trebuie să se asigure este etichetele ar trebui să spun în for='FIELD'cazul în care FIELDeste id - ul de teren pentru care această etichetă este definită.

Publicat 03/08/2012 la 08:08
sursa de către utilizator

voturi
0

Mulțumesc Kip, pentru cei care ar putea fi în căutarea pentru a obține aceleași $ folosind (acest lucru) în timp ce recapitula sau asocierea în cadrul unei funcții:

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

M-am uitat pentru un timp de lucru în timp ce acest proiect, dar nu a putut găsi un bun exemplu asa ca sper ca acest lucru îi ajută pe alții care ar putea fi în căutarea pentru a rezolva aceeași problemă.

În exemplul de mai sus, obiectivul meu a fost de a ascunde intrările de radio și stilul etichetele pentru a oferi utilizatorului o experiență impermeabil (schimbarea orientării schemei logice).

Puteți vedea un exemplu aici

Dacă vă place exemplul, aici este 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;}

și partea relevantă a JavaScript:

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

O rădăcină alternativă la întrebarea inițială, având în vedere eticheta urmează de intrare, ai putea merge cu o soluție css pură și să evite utilizarea JavaScript cu totul ...:

input[type=checkbox]:checked+label {}
Publicat 05/03/2017 la 09:50
sursa de către utilizator

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