JQuery заданный идентификатор ввода, получить текст метки - PullRequest
14 голосов
/ 12 декабря 2011

В моих формах 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.

Ответы [ 3 ]

34 голосов
/ 12 декабря 2011
$('input').change(function() {
    if (this.checked) {
        var response = $('label[for="' + this.id + '"]').html();
    }
});

Нет необходимости получать идентификатор из атрибута.

Демо: http://jsfiddle.net/wycvy/

0 голосов
/ 12 декабря 2011

вот базовый пример согласно вашему требованию.Вам нужно 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);
        }
    })
0 голосов
/ 12 декабря 2011

ваш синтаксис немного испорчен, попробуйте настроить 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's not really clear what you are trying to do here */
   var response = $("#label").attr("id");
   $("#yes1-label").text(response); 
 }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...