2009-05-08 30 views

Trả lời

32
$("table:first > tr:first") 

hoặc

$("table:first").find("tr:first") 

hoặc

$("table:first").children("tr:first") 

hoặc

$("table").eq(0).children("tr").eq(0) 

Vì vậy, nếu tôi hiểu câu hỏi của followup ...

$("table:eq(1) tr:has(table:eq(2))") 

dịch để: nhận được bất kỳ của tr trong bảng của 2 nếu tr có một bảng thứ 3

hoặc

$("table").eq(1).children("tr:has(table:eq(2))") 
+0

Cảm ơn Chad, tùy chọn thứ hai chỉ hoạt động của nó. Nhưng câu hỏi tiếp theo là nếu tôi muốn chọn bất kỳ hàng nào của bảng thứ hai trong trang của tôi nếu nó chứa 3 bảng.Lệnh mà bạn đề xuất chỉ thành công cho bảng đầu tiên hoặc cuối cùng; những gì về các bảng trung gian. Cảm ơn –

+0

jQuery thực sự linh hoạt và tôi sẽ cần phải xem cấu trúc html của bạn để cung cấp các ví dụ chính xác. Ví dụ đầu tiên trong mã của tôi sẽ không hoạt động nếu bạn có thẻ trong bảng của bạn chẳng hạn. Xin vui lòng gửi một số mẫu HTML và tôi có thể whip lên các bộ chọn –

+0

Tôi đề nghị đổi '.children (" tr: first ")' cho '.find ('> tbody> tr,> tr')' vì [một số trình duyệt thêm 'tbody' cho tất cả các bảng và một số thì không] (http://stackoverflow.com/questions/1858267/how-to-find-tr-inside-table-with-depth-1) – user568458

0

Mặc dù không phải jQuery cụ thể, tôi được giới thiệu đến Dom selectors tại w3c selectors page này. Nó rất chi tiết nhưng đầy những ví dụ phức tạp.

+0

và những gì jQuery mới nhất hỗ trợ thông qua công cụ chọn của họ, Sizzle: http://wiki.github.com/jeresig/sizzle –

1

Sử dụng phương thức eq() của jQuery bạn có thể chỉ định chỉ mục của phần tử bạn muốn nhận.
này sẽ chọn hàng đầu tiên của bảng thứ hai được tìm thấy trong DOM

$('table:eq(1) tr:first') 
+0

thực sự sẽ chọn hàng đầu tiên trong bảng thứ 3. eq() là số không dựa trên –

+0

Bạn đúng Chad Tôi tottaly quên về điều này, cố định. – duckyflip

5

Something bạn có thể sử dụng để chọn hàng thứ n trong bảng thứ n:

$("table:eq(n) tr:eq(n)") 

với n phúc chỉ số dựa trên số không của bảng hoặc tr.

Ví dụ:

$("table:eq(2) tr:eq(4)") 

được hàng thứ 5 của bảng 3.

2

@ câu trả lời của svinto chắc chắn là cách ngắn nhất, nhanh nhất và dễ nhất để thực hiện việc này. Nếu bạn thực sự liên quan đến việc thực hiện (ví dụ chọn trong một độc đoán phức tạp cho loop), điều này có thể rất có thể chứng minh được một chút nhanh hơn:

$('tr').eq(0) 

Nếu bạn không cần phải sử dụng chỉjQuery selectors và thực sự đòi hỏi phần tử DOM <TR>, bạn có thể sử dụng:

$('table')[0].rows[0] 

Hoặc:

$('tr')[0] 
Các vấn đề liên quan