jQuery-választó címkéjén négyzetet

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

Ha van egy négyzetet és egy címke leírja azt, hogyan válasszuk ki a címkét jQuery? Vajon könnyebb lesz így a cimke egy azonosítót, és válassza ki, hogy használ $(#labelId)?

A kérdést 27/07/2009 05:21
a forrás felhasználó
Más nyelveken...                            


5 válasz

szavazat
390

Ennek működnie kell:

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

Lásd még: Szelektorok / attributeEquals - jQuery JavaScript Library

Válaszolt 27/07/2009 05:23
a forrás felhasználó

szavazat
41

Ezt kell csinálni:

$("label[for=comedyclubs]")

Ha nem alfanumerikus karaktert a id, akkor körül kell vennie attr értéket idézetek:

$("label[for='comedy-clubs']")
Válaszolt 27/07/2009 05:23
a forrás felhasználó

szavazat
5

Egy másik megoldás lehet:

$("#comedyclubs").next()
Válaszolt 02/02/2011 11:23
a forrás felhasználó

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

Ez lehetővé teszi, hogy válassza ki a címkéket minden mezőt egy hurokban is. Minden, amit biztosítani kell az Ön címkéket el kell mondani for='FIELD', ahol FIELDaz id a területre vonatkozik, ahol a címke van határozva.

Válaszolt 03/08/2012 08:08
a forrás felhasználó

szavazat
0

Köszönöm Kip, azok számára, akik lehet, hogy keres, hogy elérjék ugyanazt a $ (this), míg ismételve vagy társítása egy függvényen belül:

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

Néztem egy darabig, miközben dolgozik a projekt, de nem találtam egy jó példa, így remélem, ez segít másoknak, akik esetleg szeretnének megoldani ugyanazt a kérdést.

A fenti példában, a cél az volt, hogy elrejtse a rádió be- és stílus a címkéket, hogy egy esőköpeny felhasználói élmény (tájolásának megváltoztatása a folyamatábra).

Akkor egy példát itt

Ha tetszik az Itt van például a 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;}

és a vonatkozó része a JavaScript:

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

Egy alternatív gyökér az eredeti kérdésre, mivel a címke követi a bemenet, akkor is megy a tiszta css megoldás, és ne használja a JavaScript teljesen ...:

input[type=checkbox]:checked+label {}
Válaszolt 05/03/2017 09:50
a forrás felhasználó

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