2011-01-12 32 views
6

Tôi muốn hiển thị 3 hộp kiểm được kiểm tra trước, nhưng ngay sau khi người dùng bỏ chọn hộp, cột có liên quan sẽ biến mất.ẩn các cột bảng tự động bằng cách chọn hộp kiểm với jQuery

<p><input type="checkbox" name="first_name" checked> First Name</p> 
<p><input type="checkbox" name="last_name" checked> Last Name</p> 
<p><input type="checkbox" name="email" checked> Email</p> 

rendered html của bảng

<table id="report> 
<thead> 
<tr> 
<th class="first_name">First Name</th> 
<th class="last_name">Last Name</th> 
<th class="email">Email</th> 
</tr> 
</thead> 
<tbody> 
<tr> 
<td class="first_name">Larry</td> 
<td class="last_name">Hughes</td> 
<td class="email">[email protected]</td> 
</tr> 
<tr> 
<td class="first_name">Mike</td> 
<td class="last_name">Tyson</td> 
<td class="email">[email protected]</td> 
</tr> 
</tbody> 
</table> 

tôi tưởng tượng nó sẽ phải làm gì với một sự kiện click trực tiếp, thiết lập các từng lớp để .hide()

Any help is appreciated

+0

Tham khảo http://stackoverflow.com/questions/12455699/show-hide-table-column-with-colspan-using-jquery để có câu trả lời với colspan – Lijo

Trả lời

4

Để có cột ẩn tự động cho các hộp kiểm được ẩn theo mặc định (tải trang), sử dụng đoạn mã sau cùng với các yếu tố nhấp chuột để chuyển đổi các cột:

$("input:checkbox:not(:checked)").each(function() { 
    var column = "table ." + $(this).attr("name"); 
    $(column).hide(); 
}); 

$("input:checkbox").click(function(){ 
    var column = "table ." + $(this).attr("name"); 
    $(column).toggle(); 
}); 

Demo: http://jsfiddle.net/highwayoflife/8BahZ/4/

Ví dụ này cũng sử dụng một bộ chọn như: $ ('bảng .class_name'); sẽ là bộ chọn nhanh hơn nếu bạn đang sử dụng mã trên một trang lớn hơn vì nó sẽ không phải tìm kiếm qua mọi phần tử DOM để tìm các tên lớp, nó chỉ trông dưới các bảng.

+0

works – Brad

+0

mã ur vừa mới lưu lại ngày của tôi !! – black

4
$("input:checkbox").click(function(){ 
     var column = "."+$(this).attr("name"); 
     $(column).toggle(); 
}); 

CẬP NHẬT

Kiểm tra các bản demo trực tuyến tại đây: http://jsfiddle.net/8BahZ/

+0

Ví dụ tuyệt vời! - Tuy nhiên, có một vài lỗi HTML. http://jsfiddle.net/highwayoflife/8BahZ/1/ –

+0

hoạt động tuyệt vời. những gì nếu tôi muốn có một hộp được bỏ chọn theo mặc định, nhưng nó cần phải ẩn cột tương ứng cho đến khi nó đã được kiểm tra bởi người dùng. – Brad

+0

mã hiện tại hoạt động cho tình huống đó quá – amosrivera

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