2009-07-14 45 views
5

Tôi có một chức năngTôi có thể có được một đối tượng jQuery từ một yếu tố hiện

function toggleSelectCancels(e) { 
     var checkBox = e.target; 
     var cancelThis = checkBox.checked; 

     var tableRow = checkBox.parentNode.parentNode; 

} 

làm thế nào tôi có thể nhận được một đối tượng jQuery có chứa tableRow Thông thường tôi sẽ đi $("#" + tableRow.id), vấn đề ở đây là id cho tableRow là một cái gì đó như thế này "x:1280880471.17:adr:2:key:[95]:tag:". Nó được autogenerated bởi một infragistics kiểm soát. jQuery dường như không getElementById khi id là như thế này. Tuy nhiên, tiêu chuẩn dom document.getElementById("x:1280880471.17:adr:2:key:[95]:tag:") sẽ trả lại phần tử hàng chính xác.

Dù sao, có cách nào để lấy đối tượng jQuery từ phần tử dom không?

Cảm ơn, ~ ck ở San Diego

Trả lời

13

Tuyệt đối,

$(tableRow) 

http://docs.jquery.com/Core/jQuery#elements

+0

cảm ơn tất cả. Điều này tất nhiên hoạt động hoàn hảo. Ngọt!!!! – Hcabnettek

+0

Man I love jQuery! Lưu ý - nó cần phải là một phần tử DOM như trái ngược với một Nút DOM. –

2

Bạn có thể gọi hàm jQuery trên các yếu tố DOM: $(tableRow)

Bạn cũng có thể sử dụng phương pháp closest jQuery trong trường hợp này:

var tableRowJquery = $(checkBox).closest('tr'); 

Nếu bạn muốn tiếp tục sử dụng ID của mình, kgiannakakis (bên dưới), cung cấp liên kết tuyệt vời về cách escape characters with special meaning in a jQuery selector.

2

jQuery có thể lấy phần tử DOM, hãy thử với:

$(tableRow) 

hoặc

$(checkBox.parentNode.parentNode) 
0

thử:

var r = $(document.getElementById("XXXX----ID Of Your Row----XXXX")); 

bây giờ, nếu document.getElementById không trả lại không xác định bạn có thể sử dụng r như bất kỳ đối tượng jquery thường xuyên.

2

Bạn sẽ có thể vượt qua các phần tử thẳng, như thế này:

$(tableRow)... 

Tôi đã thử nghiệm điều này bằng cách tạo ra một tham chiếu đến một div, sau đó đi qua nó thẳng vào jQuery và nó tạo ra đối tượng jQuery cho bạn.

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