Vielen Dank an Kip für diejenigen, die möglicherweise versuchen, dasselbe mit $ (this) zu erreichen, während sie innerhalb einer Funktion iterieren oder assoziieren:
$("label[for="+$(this).attr("id")+"]").addClass( "orienSel" );
Ich habe während der Arbeit an diesem Projekt eine Weile gesucht, konnte aber kein gutes Beispiel finden. Ich hoffe, dies hilft anderen, die möglicherweise versuchen, das gleiche Problem zu lösen.
Im obigen Beispiel war es mein Ziel, die Funkeingänge auszublenden und die Beschriftungen so zu gestalten, dass eine benutzerfreundlichere Benutzererfahrung erzielt wird (Änderung der Ausrichtung des Flussdiagramms).
Hier sehen Sie ein Beispiel
Wenn Ihnen das Beispiel gefällt, finden Sie hier das 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;}
und der relevante Teil des JavaScript:
function changeHandler() {
$(".orienSel").removeClass( "orienSel" );
if(this.checked) {
$("label[for="+$(this).attr("id")+"]").addClass( "orienSel" );
}
};
Eine alternative Wurzel zur ursprünglichen Frage, da die Bezeichnung der Eingabe folgt, können Sie eine reine CSS-Lösung verwenden und die Verwendung von JavaScript insgesamt vermeiden ...:
input[type=checkbox]:checked+label {}
$('#comedyclubs')[0].labels
auf alle zugewiesenen Labels zugreifen#comedyclubs
.