ขอบคุณ Kip สำหรับผู้ที่อาจจะประสบความสำเร็จเหมือนกันโดยใช้ $ (นี่) ในขณะที่วนซ้ำหรือเชื่อมโยงภายในฟังก์ชัน:
$("label[for="+$(this).attr("id")+"]").addClass( "orienSel" );
ฉันมองไปครู่หนึ่งขณะทำงานโครงการนี้ แต่ไม่พบตัวอย่างที่ดีดังนั้นฉันหวังว่านี่จะช่วยคนอื่น ๆ ที่อาจต้องการแก้ไขปัญหาเดียวกัน
ในตัวอย่างข้างต้นวัตถุประสงค์ของฉันคือการซ่อนสัญญาณวิทยุและจัดรูปแบบฉลากเพื่อมอบประสบการณ์ผู้ใช้ที่ไม่มั่นคง (เปลี่ยนทิศทางของแผนผังลำดับงาน)
คุณสามารถดูตัวอย่างได้ที่นี่
ถ้าคุณชอบตัวอย่างนี่คือ 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;}
และส่วนที่เกี่ยวข้องของ JavaScript:
function changeHandler() {
$(".orienSel").removeClass( "orienSel" );
if(this.checked) {
$("label[for="+$(this).attr("id")+"]").addClass( "orienSel" );
}
};
รูตสำรองไปยังคำถามเดิมเนื่องจากเลเบลตามหลังอินพุตคุณสามารถใช้โซลูชัน css ที่แท้จริงและหลีกเลี่ยงการใช้ JavaScript ทั้งหมด ... :
input[type=checkbox]:checked+label {}
$('#comedyclubs')[0].labels
#comedyclubs