2011-12-12 11 views
12

मेरे HTML रूपों (जैसे अधिकांश HTML रूपों में) में, लेबल फ़ील्ड के समान आईडी साझा करते हैं। एक बार मेल खाने वाले आईडी के साथ चेकबॉक्स क्लिक होने पर मैं लेबल टैग के HTML पर वापस लौटने की कोशिश कर रहा हूं।jQuery दिए गए इनपुट आईडी, लेबल टेक्स्ट

<input id="yes1" type="checkbox"> 
<label for="yes1">This is the text it should return.</label> 

और मेरे jQuery:

$('input').change(function() { 
    if (this.checked) { 
     var response = $('label#' + $(this).attr('id')).html(); 
    } 
} 

लेकिन अफसोस, प्रतिक्रिया बाहर शून्य के रूप में आता है।

+0

आप देख रहे हैं 'लेबल # yes1', लेकिन कोई उद्देश्य यह है कि कि चयनकर्ता से मेल खाता है। – jfriend00

उत्तर

30
$('input').change(function() { 
    if (this.checked) { 
     var response = $('label[for="' + this.id + '"]').html(); 
    } 
}); 

कोई ज़रूरत नहीं की तरह jQuery विशेषता का उपयोग करने से आईडी प्राप्त करने के लिए ।

डेमो: http://jsfiddle.net/wycvy/

-2

अपने वाक्य रचना एक छोटे से wacked था, इसलिए

<input id="yes1" type="checkbox" /> 
<label for="yes1" id="yes1-label">This is the label</label> 

तरह HTML स्थापित करने की कोशिश और उसके बाद तो

$("#yes1").click(function() { 
if ($("#yes1").is(":checked")) { 
    /* it's not really clear what you are trying to do here */ 
    var response = $("#label").attr("id"); 
    $("#yes1-label").text(response); 
} 
}); 
0

यहाँ आवश्यकता के अनुसार बुनियादी उदाहरण है। यदि चेक किया गया है, तो आपको अपने चेकबॉक्स के बगल में स्थित लेबल से HTML सामग्री की आवश्यकता है।

उपयोग इस

एचटीएमएल

<div> 
<form > 
<input type="checkbox" id="yes" /><label for="yes">text yes </label> 
<input type="checkbox" id="no" /><label for="no">text no</label> 

</form> 


</div> 

jQuery

$('input').change(function() { 
     if (this.checked) { 
      var response = $(this).next("label").html(); 
      alert(response); 
     } 
    }) 
संबंधित मुद्दे