2013-02-22 9 views
15

Tôi không biết nếu có một bộ chọn CSS có thể làm tương tự như các dòng dưới đây (jQuery code):Có một bộ chọn CSS chuẩn tương tự như: eq() trong jQuery không?

.tab_cadre_central .top:eq(0) table tbody tr td table tbody tr:eq(3) 

Tôi đã cố gắng trong CSS một cái gì đó như thế này:

.tab_cadre_central .top::nth-child(0) table tbody tr td table tbody nth-child:eq(3) { 
    display:none; 
} 

nhưng nó không hoạt động.

+0

Để trả lời tiêu đề câu hỏi của bạn, không, không có CSS ​​chuẩn tương đương với ': eq()' trong jQuery. Xem [khác biệt jQuery giữa: eq() và: nth-child()] (http://stackoverflow.com/questions/7039966/jquery-difference-between-eq-and-nth-child) – BoltClock

Trả lời

33

Trong khi jQuery :eq() sử dụng 0 dựa trên lập chỉ mục, :nth-child() sử dụng 1 dựa trên lập chỉ mục, vì vậy bạn cần để tăng chỉ số của bạn một cách thích hợp:

.tab_cadre_central .top:nth-child(1) table tbody tr td table tbody tr:nth-child(4) 

Nhưng bạn thực sự cần suy nghĩ về refactoring selector đó ...


⚠ Cần lưu ý rằng mặc dù :eq():nth-child() có thể hoạt động tương tự - chúng chắc chắn không giống nhau. :eq() sẽ chọn phần tử n + 1 trong tập hợp trong khi :nth-child() sẽ chọn tất cả các phần tử trong tập hợp là con của cha mẹ tương ứng n. ⚠

<div> 
    <span></span> 
    <span></span> 
</div> 
<div> 
    <span></span> 
</div> 

Bộ chọn div span:nth-child(1) sẽ lấy hai yếu tố, trong khi div span:eq(0) sẽ chỉ chọn một.

+0

tôi đồng ý, điều này không nhìn một chút tẻ nhạt – kabuto178

+0

có, tnks fr các thông tin ^^ – user2077308

+0

Đó không phải là sự khác biệt duy nhất. Trên thực tế, trừ khi HTML bị hạn chế, bộ chọn này có thể khớp với nhiều phần tử hơn là cần thiết - hoặc * không khớp với tất cả *. OP sẽ cần đảm bảo rằng HTML của họ thực sự khớp với cả hai bộ chọn. – BoltClock