2010-02-28 46 views

Trả lời

20

Tôi muốn sử dụng plugin tinysort:

http://tinysort.sjeiti.com/

Trong trường hợp của bạn nó sẽ là một cái gì đó như:

$("#container > div").tsort("",{attr:"id"});

+1

này. Tôi đã phải nuốt niềm tự hào của tôi và thừa nhận tôi không thể tìm ra cách để có được 'sort()' làm việc không có vấn đề gì chức năng tôi đã thông qua với nó. Tôi tích hợp TinySort và cuộc sống của tôi chưa bao giờ dễ dàng hơn thế. –

+2

Đối với những người tìm kiếm điều này bởi Google, tôi tin rằng ví dụ trên có thể đã lỗi thời. Điều gì làm việc cho tôi với plugin này: 'tinysort ('# container> div', {attr: 'id'})' – That1Guy

8

Có plugin và những thứ tương tự để làm sắp xếp của các nguyên tố . Nếu bạn có kế hoạch thực sự sắp xếp lại các phần tử DOM, có lẽ bạn nên sử dụng một trong số chúng.

Nếu bạn chỉ muốn danh sách được sắp xếp của các div, bạn có thể sử dụng Javascript - vì mảng có thể được sắp xếp bằng cách sử dụng hàm so sánh tùy chỉnh. Bạn có thể chuyển đổi tập hợp được chọn là <div> s thành một mảng bằng cách sử dụng toArray() và sau đó sắp xếp chúng bằng cách sử dụng cơ chế này.

$('#container > div').toArray().sort(function(a,b) { a.id - b.id }); 

Bạn cũng có thể sử dụng detach()appendTo() phương pháp để loại bỏ và tái chèn các yếu tố theo thứ tự sắp xếp. Tuy nhiên, đây có thể không phải là cách hiệu quả nhất để sắp xếp lại các phần tử DOM.

+0

Cảm ơn! Nó rất hữu ích. – ababa

+0

Đây là câu trả lời đúng, rater hơn là dựa vào plugin. – nickspiel

0

Hãy thử plugin jquery của tôi $.toArrayouter, sử dụng thư viện Underscore.

$('#container').html(_.sortBy($('#container>div').toArrayouter(),function (name) {return name}).join('')) 

Demo: http://jsfiddle.net/abdennour/fDZjR/1/

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