Ответ 1
$('input').change(function() {
if (this.checked) {
var response = $('label[for="' + this.id + '"]').html();
}
});
Не нужно получать идентификатор от атрибута.
В моих HTML-формах (как и в большинстве форм HTML) метки имеют те же идентификаторы, что и поля. Я пытаюсь вернуться к HTML-тегу метки после установки флажка с соответствующим идентификатором.
<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();
}
}
Но, увы, ответ появляется как NULL.
$('input').change(function() {
if (this.checked) {
var response = $('label[for="' + this.id + '"]').html();
}
});
Не нужно получать идентификатор от атрибута.
вот основной пример согласно вашему требованию. Вам нужно html-содержимое с метки рядом с вашим флажком, если он установлен.
используйте этот
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);
}
})
ваш синтаксис был немного взломан, попробуйте настроить HTML так
<input id="yes1" type="checkbox" />
<label for="yes1" id="yes1-label">This is the label</label>
а затем используйте jquery так
$("#yes1").click(function() {
if ($("#yes1").is(":checked")) {
/* it not really clear what you are trying to do here */
var response = $("#label").attr("id");
$("#yes1-label").text(response);
}
});