jQuery:根据不同子div的内容对div进行排序

我正在尝试创建一个有点复杂的排序function,既不使用div也不使用列表。 不幸的是,两个小时的谷歌搜索没有帮助我。

这是我的HTML的基本设置:

image

Name (Sort Argument 1)

2010 (Sort Argumentt 3)
Great Britain (Sort Argument 4)

设置有点复杂,但基本上.element是需要根据h3,div.title,div.year或div.country的内容按字母顺序排序的元素。 因此,用户将能够按名称,年份,国家或标题查看网站内容。

我有一个来自网站的jQuery片段,但我尝试告诉它使用例如h3的内容进行排序的所有尝试都失败了。 现在它几乎随机排序。

  jQuery.fn.sort = function() { return this.pushStack([].sort.apply(this, arguments), []); }; function sortAscending(a, b) { return a.innerHTML > b.innerHTML ? 1 : -1; }; function sortDescending(a, b) { return a.innerHTML < b.innerHTML ? 1 : -1; }; $(document).ready(function() { $("#sort").toggle( function() { $('#all_elements .element').sort(sortDescending).appendTo('#all_elements'); $(this).text("Sort Asc"); }, function() { $('#all_elements .element').sort(sortAscending).appendTo('#all_elements'); $(this).text("Sort Desc"); }); }); 

如何自定义函数以对h3或div的内容进行排序?

请尝试使用这些比较函数:

 function sortAscending(a, b) { return $(a).find("h3").text() > $(b).find("h3").text() ? 1 : -1; }; function sortDescending(a, b) { return $(a).find("h3").text() < $(b).find("h3").text() ? 1 : -1; };