2016-12-05 3 views
-1

Ich habe folgendes:jQuery - Änderung Inhalt des Labels auf einen Eingang klicken

<INPUT class="input_checkItem" TYPE="checkbox" NAME="n_checkbox" VALUE="1234" id="1" checked> 
<label for="1">The value of this label is Yes</label> 

Und ich brauche einen Weg, so dass, wenn ich auf dem es die passende ändert input klicken Etiketten Text von ‚Ja‘ zu " Nein 'und umgekehrt. (N. B., dass checked immer gleich ‚Ja‘, wenn das einen Unterschied macht.)

Aber ich kann nicht herausfinden, wie man tatsächlich den Textwert zuzugreifen, geschweige denn ändern.

Bisher habe ich:

$('body').on('click','.input_checkItem',function() 
{ 
    txt = $(this).closest("label").text(); 
    alert(txt); 
}) 

Aber das kommt nur wieder leer. Wie kann ich das machen?

Antwort

0

Versuchen Sie folgendes:

$('body').on('click','.input_checkItem',function(){ 
    $(this).next('label').text('Done'); 
}); 

Working fiddle

0

dieses Versuchen

html

<div> 
    <input type="checkbox" name="chck"> 
    <label>No</label> 
</div> 

js

$('input[name="chck"]').change(function() { 
    var text = ($(this).is(':checked')) ? 'Yes' : 'No'; 
    $(this).parent().find('label').text(text); 
}); 

Als nächstes können Sie html5 Daten Attribut verwenden, um Text zu setzen, weil Text in js Skripten hässlich ist.

zu Checkbox hinzufügen Attribute

<input type="checkbox" name="chck" data-label-yes="Yesss" data-label-no="Nooo"> 

und js zu

var text = ($(this).is(':checked')) ? $(this).data('label-yes') : $(this).data('label-no'); 

JSFIDDLE

JSFIDDLE_2

012 UPDATE ändern
+0

prost, das ist großartig. Wenn ich jedoch zwei (oder mehr) Kontrollkästchen habe, wie kann ich es dann auf das ändern lassen, das geändert wurde? – IGGt

+0

oh Entschuldigung, feste Checkbox nach Name ist schlechte Wahl, die Sie brauchen mehr globale indetification wie Klasse usw. Ich aktualisierte die Antwort. – daremachine

+0

Prost, das funktioniert perfekt. – IGGt

1

Working Fiddle

$(".input_checkItem").change(function() { 
    if (this.checked) { 
    $(this).next('label').text('done'); 

    } else 
    alert(2); 
}); 
Verwandte Themen