2012-10-13 48 views
8

Tôi có một số mã HTML trông như thế này:jQuery yếu tố gần gũi nhất với một thuộc tính có chứa một giá trị

<tr id="nbContent_GR1">...</tr> 
<tr id="nbContent_GR2">...</tr> 
<tr id="nbContent_GR3">...</tr> 
<tr id="nbContent_GR4">...</tr> 
<tr id="nbContent_GR5">...</tr> 
<tr id="nbContent_GR6">...</tr> 

Trong một trong những hàng, tôi muốn đi qua lên DOM để tìm các phần tử gần nhất mà có một thuộc tính ID bắt đầu bằng "nbContent_GR". Vì vậy, về cơ bản tôi muốn để có thể tìm thấy các nguyên tố TR cha mẹ mà không biết ID chính xác của nó, chỉ là một trong những đầu tiên mà bắt đầu với "nbContent_GR". Điều này có thể không? Nếu vậy, làm thế nào tôi sẽ đi về nó?

BTW, tôi biết bộ chọn gần nhất() và "chứa", chỉ cần không chắc chắn nếu có thể được sử dụng trên giá trị thuộc tính hay không.

+0

Xin lỗi, không hiểu những gì bạn yêu cầu. –

Trả lời

14

Chỉ cần làm:

tr = $(this).closest("[id^='nbContent_GR']"); 

mà sẽ đi qua DOM lên cho đến khi nó tìm thấy một mẹ với ID bắt đầu với

+0

Hoàn hảo, tôi biết có một giải pháp đơn giản mà tôi đã bỏ lỡ. :) Tôi không biết mục đích của "^". Gotta thích học một cái gì đó mới. – Scott

3
.closest('[id^="nbContent_GR"]') 
1

Hai trang hữu ích 'nbContent_GR' để xem xét:

http://api.jquery.com/closest/

http://api.jquery.com/attribute-starts-with-selector/

Tôi nghĩ bạn có thể kết hợp các giải pháp này cho một giải pháp.

Từ bên trong TR, tìm TR gần nhất. Sau đó, sử dụng công cụ chọn 'bắt đầu với' để tìm ID bắt đầu bằng giá trị yêu cầu của bạn.

ví dụ .:

$(this).closest("tr").parent().find("id^='nbContent_GR'"); 
Các vấn đề liên quan