2010-03-05 34 views
37

Tôi đang viết một danh sách sắp xếp có thể sắp xếp trong jQuery (b/c của vấn đề cuộn-in-div khét tiếng, bất kỳ giải pháp mới nào cho điều này?). Tuy nhiên, tôi không biết cách so sánh các phần tử (được kích hoạt trên mousedown/mouseup) sau khi chúng được bọc trong jQuery. Trong nguyên mẫu, nó luôn luôn là ele.domNode.Làm cách nào để kiểm tra xem hai phần tử DOM được bao bọc bởi jQuery có giống nhau hay không?

Đây là những gì tôi đang cố gắng để thực hiện trong bản chất ...

<div id="cheese"></div> 
<div id="burger"></div> 

<script> 

// Some dom nodes wrapped in jquery 
var ele1 = $('#cheese'); 
var ele2 = $('#burger'); 
var ele3 = $('#burger'); 

// Is the dom node wrapped in ele1 (#cheese) the same as in ele2 (#burger)? 
if (ele1 == ele2) 
{ 
    // Should never be true 
} 

// Is the dom node wrapped in ele2 (#burger) the same as in el32 (#burger)? 
if (ele2 == ele3) 
{ 
    // Should always be true 
} 

</script> 
+0

e-motiv ở đây là rất tốt và không được đề cập về vấn đề này: http://stackoverflow.com/questions/2407825/how-to-compare-two-elements-in-jquery – billynoah

Trả lời

62

Một đối tượng jQuery có thể được coi là một mảng của các yếu tố DOM thô.

Bạn có thể so sánh các yếu tố DOM liệu như thế này:

if(ele2[0] === ele3[0]) 
+0

làm việc này dường như & là phương pháp ưa thích, cảm ơn: s –

11

Hãy so sánh các yếu tố DOM bên trong như thế này:

if (ele1.get(0) == ele2.get(0)) 
+0

phương pháp này cũng hoạt động, cảm ơn! –

0

Đây cũng là một cách tốt để giải quyết vấn đề này. Bạn có thể so sánh các thuộc tính id vì chúng phải giống hệt nhau trong ví dụ của bạn ở trên. câu trả lời

ele1.attr("id") == ele2.attr("id"); //returns false 
ele2.attr("id") == ele3.attr("id"); //returns true 
+0

Không có gì đạt được khi so sánh với 'id', và gọi' attr' chắc chắn chậm hơn so với chỉ lập chỉ mục vào các đối tượng jQuery. – Louis

+0

Cảm ơn thông tin chi tiết của bạn. Tôi chỉ nghĩ rằng tôi muốn chia sẻ một giải pháp mà cũng làm việc mà không có xem xét cho hiệu suất so với các giải pháp khác kể từ khi OP không nói rằng ông đang tìm kiếm giải pháp nhanh nhất. – M7Jacks

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