2009-10-25 33 views
5

tôi cần phải chọn dựa trên xpath, hoặc chuyển đổi xpath thành css.jquery: chọn xpath hoặc chuyển đổi xpath thành css?

là có plugin hoặc chức năng được tích hợp sẵn.

ví dụ: $('/html/body/div/a[4]').each ....

+0

Tôi không quá quen thuộc với XPATH, tôi giả định rằng tìm mọi div trên trang và sau đó là liên kết thứ 5 cho mỗi div đó? – WesleyJohnson

+1

Tôi không biết nếu điều này là lỗi thời hay không, nhưng điều này cho thấy jQuery có thể làm điều đó một cách tự nhiên? http://dev.jquery.com/wiki/XPath?version=3 – WesleyJohnson

+2

hỗ trợ xpath tôi tin là đã bị xóa. – jqjqjqjqu

Trả lời

3

Không phải tất cả biểu thức xpath đều có thể dịch sang bộ chọn giống như CSS hoặc không hoạt động hiệu quả. Bạn có thể sử dụng bộ chọn :eq để truy cập các phần tử theo chỉ mục, nhưng thay vào đó bạn nên sử dụng phương thức eq. Điều này sẽ tương đương với xpath trong ví dụ của bạn:

$('html > body > div > a').eq(3).each(... 
+0

Bạn cũng có thể sử dụng '$ ('html> body> div> a: eq (4)'). Each (...' – Blaise

+0

Lưu ý rằng '[4]' trong Xpath tương ứng với 'eq (3)' trong jQuery Xpath bắt đầu đếm tại 1, không phải 0. – Blaise

+1

@Blaise: Phải, điều đó là có thể. Tuy nhiên, tài liệu khuyến cáo sử dụng phương pháp 'eq' để có hiệu suất tốt hơn trong các trình duyệt hiện đại: http://api.jquery.com/eq -selector/Good điểm về chỉ số, tôi sửa mã trong câu trả lời. – Guffa