jquery根据子元素的大小对ul元素进行排序
只是一个关于排序HTML元素的简短问题 如果有超过10个无序列表,其中包含不同大小的子项。 这是一种简单的重新订购方式吗 HTML示例:jquery根据子元素的大小对ul元素进行排序,jquery,list,function,sorting,children,Jquery,List,Function,Sorting,Children,只是一个关于排序HTML元素的简短问题 如果有超过10个无序列表,其中包含不同大小的子项。 这是一种简单的重新订购方式吗 HTML示例: <div id="wrapper"> <ul> <li>One</li> <li>Two</li> <li>Three</li> </ul> <ul> &
<div id="wrapper">
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
<li>Five</li>
</ul>
<ul>
<li>One</li>
<li>Two</li>
</ul>
</div>
- 一个
- 两个
- 三
- 一个
- 两个
- 三
- 四
- 五
- 一个
- 两个
这就是我想要的:
<div id="wrapper">
<ul>
<li>One</li>
<li>Two</li>
</ul>
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
<li>Five</li
</ul>
</div>
- 一个
- 两个
- 一个
- 两个
- 三
- 一个
- 两个
- 三
- 四
- 五个这对于香草
.sort()
来说相当容易
- 获取元素
- 拆开它们
- 分类
- 将它们添加回DOM
JavaScript
var $wrapper = $('#wrapper');
// Get children and detach
var children = $wrapper.children().detach();
// Sort them
children.sort(function(a, b) {
// Compare amount of children
return $(a).children().length - $(b).children().length;
});
// Add them back
$wrapper.append(children);
查看。这对于香草.sort()
来说相当简单
- 获取元素
- 拆开它们
- 分类
- 将它们添加回DOM
JavaScript
var $wrapper = $('#wrapper');
// Get children and detach
var children = $wrapper.children().detach();
// Sort them
children.sort(function(a, b) {
// Compare amount of children
return $(a).children().length - $(b).children().length;
});
// Add them back
$wrapper.append(children);
查看。在Tims答案的基础上,您可以像这样将此功能包装在jQuery函数中
$.fn.sortChildren = function(sortCb){
this.children().detach().sort(sortCb).appendTo(this);
};
然后,您可以像这样使用它,从而提高可读性和可重用性
var $wrapper = $('#wrapper');
// Sort them
$wrapper.sortChildren(function(a, b) {
// Compare amount of children
return $(a).children().length - $(b).children().length;
});
请参见基于Tims答案,您可以将此功能包装在jQuery函数中,如下所示
$.fn.sortChildren = function(sortCb){
this.children().detach().sort(sortCb).appendTo(this);
};
然后,您可以像这样使用它,从而提高可读性和可重用性
var $wrapper = $('#wrapper');
// Sort them
$wrapper.sortChildren(function(a, b) {
// Compare amount of children
return $(a).children().length - $(b).children().length;
});
请参见您能显示到目前为止您尝试过的代码吗?您能显示到目前为止您尝试过的代码吗?