2012-04-03 19 views
7

Tôi có một bảng html có ID là thetable. Nó có (theo FireBug), một thẻ TBODY chưa được đặt tên và một thẻ TR chưa được đặt tên. Ba thẻ TD bên trong mà tôi muốn truy cập không được đặt tên. Có bất kỳ bộ chọn CSS nào mà tôi có thể sử dụng để tham chiếu các thẻ tr không được đặt tên này không?Bộ chọn CSS cho một TD trong bảng có mã số

Tôi đã thử:

table#thetable:nth-child(1)

Nhưng điều này không chọn cho những thẻ.

Tôi đang sử dụng jsoup.org để kéo dữ liệu này thành chuỗi. Tôi muốn lấy văn bản của mỗi TD trong bảng (trong đó tôi biết tên) và đặt tất cả vào một mảng.

Something như thế này:

// Pseudocode for all the TDs into an array 
Elements strings = doc.select("table#thetable: children"); 
+0

thứ n con trong ví dụ của bạn đề cập đến bảng mà nth-child của cha mẹ (không phải là con của bảng). – Chalky

Trả lời

4

Nếu bạn chỉ đơn giản là tìm cách để có được tất cả td yếu tố của bạn, điều này sẽ là đủ:

Elements elems = doc.select("table#thetable td"); 

Sau đó lặp elems, lấy văn bản từ td của bạn và đặt chúng trong mảng của bạn.

Ngoài ra, có lẽ bạn nên sử dụng một danh sách mảng thay vì một mảng nếu bạn không biết hoặc không thể kiểm soát có bao nhiêu tế bào bảng của bạn sẽ có:

Elements elems = doc.select("table#thetable td"); 
List<String> strings = new ArrayList<String>(); 

for (Element e : elems) { 
    strings.add(e.text()); 
} 
+0

Cảm ơn bạn. Bạn không cần phải thêm phần thứ hai đó :) Tôi chỉ gặp khó khăn trong việc tìm ra cách để có được tất cả các phần tử bảng với bộ chọn CSS trong Jsoup.Cảm ơn một lần nữa và xin lỗi, tôi nên đã được rõ ràng về phần phân tích cú pháp từ đầu. –

+0

Không sao cả. Tôi đã không viết bất kỳ mã Java nào mãi mãi, vì vậy tôi chỉ lấy cơ hội này để ... sửa đổi;) – BoltClock

4

Bạn chỉ muốn truy cập vào tất cả các tế bào?

#thetable td 

Hoặc bạn có muốn truy cập hàng đầu tiên không?

#thetable tr:first-of-type td 
+0

Tôi có lẽ cũng nên nói rằng tôi đang phân tích cú pháp HTML trong Java bằng cách sử dụng [Jsoup] (http://www.jsoup.org). Liệu có tạo ra một mảng không? –

+1

@Mark Lyons: Có. Ngay cả khi không có phần tử nào được khớp, danh sách phải trống, nhưng không phải là rỗng. – BoltClock

+0

Xin lỗi các bạn, tôi cần phải cụ thể hơn. Hãy nhìn vào bản chỉnh sửa mà tôi vừa tạo. –

1

Tôi nghĩ rằng đây là những gì bạn đang tìm kiếm. Đây chỉ tiêu hàng đầu tiên của tế bào TD, loại trừ dòng tiêu đề:

http://jsfiddle.net/ckaufman/hGRwc/1/

table#thetable tr:nth-child(1) td{ /*Edit Here*/ } 

Ive bao gồm một số ví dụ khác trong css cho bạn

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