Terima kasih Kip, bagi mereka yang mungkin mencari untuk mencapai hal yang sama menggunakan $ (ini) sambil beralih atau bergaul dalam suatu fungsi:
$("label[for="+$(this).attr("id")+"]").addClass( "orienSel" );
Saya mencari sementara waktu mengerjakan proyek ini tetapi tidak dapat menemukan contoh yang baik jadi saya harap ini membantu orang lain yang mungkin mencari untuk menyelesaikan masalah yang sama.
Dalam contoh di atas, tujuan saya adalah menyembunyikan input radio dan memberi style pada label untuk memberikan pengalaman pengguna yang lebih licin (mengubah orientasi diagram alur).
Anda dapat melihat contohnya di sini
Jika Anda suka contohnya, inilah 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;}
dan bagian yang relevan dari JavaScript:
function changeHandler() {
$(".orienSel").removeClass( "orienSel" );
if(this.checked) {
$("label[for="+$(this).attr("id")+"]").addClass( "orienSel" );
}
};
Root alternatif untuk pertanyaan awal, mengingat label mengikuti input, Anda bisa menggunakan solusi css murni dan menghindari menggunakan JavaScript sama sekali ...:
input[type=checkbox]:checked+label {}
$('#comedyclubs')[0].labels
untuk mengakses semua label yang ditetapkan#comedyclubs
.