jQuery给出输入ID,获取标签文本

时间:2011-12-12 06:00:16

标签: jquery html forms checkbox

在我的HTML表单中(与大多数HTML表单一样),标签与字段共享相同的ID。一旦点击了具有匹配ID的复选框,我就会尝试返回标签标签的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 个答案:

答案 0 :(得分:34)

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

无需从属性中获取id。

演示:http://jsfiddle.net/wycvy/

答案 1 :(得分:0)

这是根据您的要求的基本示例。如果选中了复选框,则需要复选框旁边标签中的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);
        }
    })

答案 2 :(得分:-2)

你的语法有点怪,试着像这样设置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); 
 }
});