2009-03-13 26 views
7

Tôi sẽ quay lại một dự án gần đây sắp xếp các vấn đề về khả năng truy cập và đảm bảo tất cả các phần tử biểu mẫu đều có nhãn. Đặt văn bản nhãn vào thẻ gây ra sự cố với một số mã kludgy mà tôi đã viết trước đây.hide() nút radio * và * nhãn văn bản của nó trong jquery

Về cơ bản, nếu bạn có một nút radio và nhãn của nó:

<label for="zone_r1"><input type="radio" name="zone" id="zone_r1" value="NY" />New York</label> 

Và bạn sử dụng jquery để ẩn nó như vậy:

$('#zone_r1').hide(); 

Nút thực tế được ẩn nhưng không phải là văn bản nhãn . Ban đầu tôi làm một khoảng cho các văn bản nhãn và giấu rằng như vậy:

<input id="NY" type="radio" name="zone" value="NY" /><span id="nyTXT">New York</span> 

$('#NY').hide(); 
$('#nyTXT').hide(); 

Bất kỳ ý tưởng? Tôi không thích sử dụng kludge và nó có thể không hợp lệ với nhịp trong nhãn, nhưng có lẽ tôi đang quá hăng say.

Trả lời

12
$('#zone_r1').parent().hide(); 

công trình đối với tôi

1

gì về $('label:has(#zone_r1)').hide();

2

Đối với nút radio đầu tiên, bạn có thể ẩn các nút thực tế và sau đó nó parent:

$('#zone_r1').hide().parent().hide(); 

Đối với trường hợp thứ hai bạn có thể ẩn nút và "next" anh chị em:

$('#NY').hide().next().hide(); 
21

Tôi nghĩ rằng điều này sẽ làm việc cho bạn

$("label[for=zone_r1],#zone_r1").hide(); 

này sẽ chọn nhãn với "cho" thuộc tính thiết lập để nút radio bạn đang tìm kiếm, cũng như nút radio riêng của mình, và giấu cả hai

0

Bạn có thể thực hiện việc này:

1.) Xác định đầu vào nút radio mà không có nhãn xung quanh.

2.) Gói "văn bản tùy chọn" (văn bản ở bên phải của nút radio) trong một <span>.

3.) Sử dụng tuyên bố jQuery này: $("input:radio:not(:checked), input:radio:not(:checked) + span").hide();

này sẽ chọn nút radio và các văn bản ở bên phải của nút radio và giấu nó.

0

Chỉ cần đặt 'nhãn' selector trong mẹ:

$(':radio[id=zone_r1]').parent('label').hide(); 

Xem my jsFiddle example

+1

Tôi không biết tại sao bạn cảm thấy bạn cần phải trả lời câu hỏi này rất cũ và đã được trả lời, và nó stun tôi rằng bạn thực sự viết một bộ chọn có chứa '[id = ...]'. Đó là một ID. Bạn biết: '# zone_r1'. – SoonDead

0

ẩn nút radio container hoặc TD dựa trên giá trị

jQuery ("input [type = radio] [giá trị = 'EU2'] "). Parent().ẩn giấu();

Các vấn đề liên quan