Tôi có bảng hiển thị cấu trúc cây (Siêu và Danh mục con). Khi người dùng nhấp vào một danh mục siêu dữ liệu, thuộc tính hiển thị của các con sẽ được chuyển thành.Chọn mỗi hàng bảng hiển thị thứ hai
Bây giờ tôi muốn thêm màu nền thay thế trên mỗi hàng của bảng thứ hai - nhưng tất nhiên chỉ lấy những màu trong tài khoản hiện đang hiển thị. Dưới đây là ví dụ đơn giản về cấu trúc:
<table>
<tr data-level="0"><td>Super 1</td></tr>
<tr class="hide" data-level="1"><td>Sub 1</td></tr>
<tr data-level="0"><td>Super 2</td></tr>
<tr class="hide" data-level="1"><td>Sub 2</td></tr>
<tr class="hide" data-level="1"><td>Sub 3</td></tr>
<tr class="hide" data-level="1"><td>Sub 4</td></tr>
</table>
Khi người dùng nhấp vào phần tử "Super 2", lớp "ẩn" bị xóa khỏi phần tử con.
Tôi đã thử nhiều selectors, ví dụ .:
/* Ugly result (dosn't recognize that elements are hidden) */
tr:nth-child(2n)
{
background-color: grey;
}
/* Doesn't work at all */
tr:visible:nth-child(2n)
{
background-color: grey;
}
/* Not what I inteded to do */
tr:not(.hide):nth-child(2n)
{
background-color: grey;
}
Tôi hy vọng tôi đã rõ ràng về những gì tôi muốn làm.
Điều đó có thể thực hiện với CSS hay tôi nên viết tập lệnh JS để tính toán lại các hàng chẵn và lẻ bất cứ khi nào có thay đổi? Cảm ơn trước vì bất kỳ gợi ý nào!
Điều này được hỏi rất nhiều - câu trả lời thông thường là không thể với CSS thuần túy (cho đến CSS4 có thể), vì vậy trong thời gian chờ đợi, bạn sẽ cần thực hiện tất cả điều này trong JS. Trên thực tế, bộ chọn ': visible' thực sự là một bộ chọn không chuẩn xuất hiện trong jQuery/Sizzle và có thể là một vài thư viện khác. – BoltClock
bản sao có thể có của [Kiểu sử dụng nth-child để giữ cho mặt của bảng (màu sắc thay đổi hàng) được cập nhật] (http://stackoverflow.com/questions/9216398/style-using-nth-child-to-keep-tables-aspect- luân phiên-hàng-màu sắc-cập nhật) – BoltClock