Volič jQuery na etiketě políčko

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

Mám-li zaškrtávací políčko se štítkem popisujícím to, jak mohu vybrat štítku pomocí jQuery? Bylo by jednodušší dát štítek označit ID a zvolte, že pomocí $(#labelId)?

Položena 27/07/2009 v 05:21
zdroj uživatelem
V jiných jazycích...                            


5 odpovědí

hlasů
390

To by mělo fungovat:

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

Viz také: Voliče / attributeEquals - jQuery knihovna JavaScriptu

Odpovězeno 27/07/2009 v 05:23
zdroj uživatelem

hlasů
41

To by mělo stačit:

$("label[for=comedyclubs]")

Máte-li jiné než alfanumerické znaky v id pak musíte obklopit hodnotu attr s citací:

$("label[for='comedy-clubs']")
Odpovězeno 27/07/2009 v 05:23
zdroj uživatelem

hlasů
5

Dalším řešením by mohlo být:

$("#comedyclubs").next()
Odpovězeno 02/02/2011 v 11:23
zdroj uživatelem

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

To by mělo umožnit zvolit popisky pro všechna pole ve smyčce stejně. Vše, co potřebujete, abyste zjistili, je vaše štítky by se říci, for='FIELD'kde FIELDje id pole, pro které je toto označení je definována.

Odpovězeno 03/08/2012 v 08:08
zdroj uživatelem

hlasů
0

Díky Kip, pro ty, kteří mohou mít zájem na dosažení stejných pomocí $ (toto), zatímco iterace nebo sdružování v rámci funkce:

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

Podíval jsem se na chvíli při práci tento projekt, ale nemohl najít dobrý příklad, takže doufám, že to pomáhá ostatním, kteří mohou být, kteří chtějí řešit stejný problém.

Ve výše uvedeném příkladu, mým cílem bylo skrýt rozhlasové vstupy a styl štítků poskytovat gumák uživatelské zkušenosti (změna orientace diagramu).

Můžete vidět příklad zde

Pokud se vám líbí příklad, tady je 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 příslušná část JavaScriptu:

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

Střídavá kořen k původní otázce, vzhledem k tomu, štítek následuje vstup, mohli byste jít s čistým css řešení a vyhnout se používání JavaScript úplně ...:

input[type=checkbox]:checked+label {}
Odpovězeno 05/03/2017 v 09:50
zdroj uživatelem

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