धन्यवाद किप, जो एक ही का उपयोग कर $ (this) पुनरावृत्ति या एक समारोह के भीतर जोड़ जबकि प्राप्त करने के लिए देख जा सकता है उन लोगों के लिए:
$("label[for="+$(this).attr("id")+"]").addClass( "orienSel" );
मैं इस परियोजना में काम कर रहे, जबकि कुछ समय के लिए देखा है, लेकिन एक अच्छा उदाहरण नहीं मिल सकता है तो मैं आशा है कि यह अन्य लोगों से इस मुद्दे को हल करने के लिए देख जा सकता है में मदद करता है।
उपरोक्त उदाहरण में, मेरे उद्देश्य रेडियो आदानों छिपाने के लिए और लेबल शैली एक बरसाती कोट उपयोगकर्ता अनुभव (प्रवाह संचित्र के उन्मुखीकरण को बदलने) प्रदान करने के लिए किया गया था।
आप कर सकते हैं एक उदाहरण देख
आप उदाहरण पसंद है, तो यहाँ सीएसएस है:
.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;}
और जावास्क्रिप्ट के प्रासंगिक भाग:
function changeHandler() {
$(".orienSel").removeClass( "orienSel" );
if(this.checked) {
$("label[for="+$(this).attr("id")+"]").addClass( "orienSel" );
}
};
मूल प्रश्न के लिए एक वैकल्पिक रूट, लेबल दिए गए इनपुट इस प्रकार है, आप एक शुद्ध सीएसएस समाधान के साथ जाने के लिए और पूरी तरह जावास्क्रिप्ट का उपयोग करने से बचने सकता है ...:
input[type=checkbox]:checked+label {}