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");
Szukałem jakiś czas podczas pracy tego projektu, ale nie może znajdź dobry przykład, więc mam nadzieję, że pomoże to innym, którzy mogą chcieć rozwiązać ten sam problem.
W powyższym przykładzie, moim celem było ukrycie wejść radiowych i stylizacja etykiet w celu zapewnienia lepszego komfortu użytkownika (zmiana orientacji schematu blokowego).
Można see an example here
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;}
i odpowiednia część JavaScript:
function changeHandler() {
$(".orienSel").removeClass("orienSel");
if(this.checked) {
$("label[for="+$(this).attr("id")+"]").addClass("orienSel");
}
};
Alternatywny korzeń do oryginału pytanie, biorąc pod uwagę, że etykieta podąża za danymi wejściowymi, możesz pójść z czystym rozwiązaniem css i całkowicie unikać JavaScriptu:
input[type=checkbox]:checked+label {}
Dla przeglądarek Webkit (Safari/Chrome) można zrobić '$ ('# comedyclubs') [0] .labels', aby uzyskać dostęp do wszystkich etykiet przypisanych do' # comedyclubs'. – Matt
Użyj .text(), aby przekonwertować obiekt na ciąg znaków: alert ($ ("label [for = 'comedyclubs']"). Text()); – Loren
po prostu używając $ ("label [for = 'comedyclubs']") dostaniesz wartość, ale sprawi ona, że etykieta będzie pusta. tak więc użyj $ ("label [for = 'comedyclubs']"). text() – shahil