2011-12-12 33 views
12

Trong các biểu mẫu HTML của tôi (như trong hầu hết các biểu mẫu HTML), các nhãn chia sẻ cùng một ID với các trường. Tôi đang cố gắng quay lại HTML của thẻ nhãn khi hộp kiểm có ID khớp được nhấp.ID đầu vào của jQuery, nhận văn bản nhãn

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

Và jQuery tôi:

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

Nhưng than ôi, phản ứng đi ra như NULL.

+0

Bạn đang nhìn lên 'nhãn # yes1', nhưng không có đối tượng phù hợp mà chọn. – jfriend00

Trả lời

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

Không cần phải nhận được id từ thuộc tính .

Bản trình diễn: http://jsfiddle.net/wycvy/

-2

cú pháp của bạn là một chút wacked, thử thiết lập HTML như vậy

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

và sau đó sử dụng jquery như vậy

$("#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

đây là ví dụ cơ bản theo yêu cầu của bạn. Bạn cần nội dung html từ nhãn bên cạnh hộp kiểm của bạn, nếu nó được chọn.

sử dụng này

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); 
     } 
    }) 
Các vấn đề liên quan