jquery 标签排序

jy02409187 2012-03-08 02:23:58

<button name="id">按id排序</button>
<button name="date">按时间排序</button>
<ul>
<li>
<span name="id">123</span>
<span name="date">2012/3/8</span>
</li>
<li>
<span name="id">234</span>
<span name="date">2012/1/5</span>
</li>
<li>
<span name="id">900</span>
<span name="date">2012/9/8</span>
</li>
<li>
<span name="id">787</span>
<span name="date">2012/2/8</span>
</li>
</ul>


有没办法当我点击按id排序的时候li就按id排,同样点时间的时候就按时间排,麻烦各位啦
...全文
126 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jusfr 2012-03-08
  • 打赏
  • 举报
回复
你有多个ul,那么使用each
$('ul').each(function () {
$(this).html($.makeArray($(this).find('li')).sort(function (li1, li2) {
return parseInt($(li1).find('span[name="id"]').text(), 10) - parseInt($(li2).find('span[name="id"]').text(), 10);
}));
})
jy02409187 2012-03-08
  • 打赏
  • 举报
回复
我明白了
jy02409187 2012-03-08
  • 打赏
  • 举报
回复
问题出现了

<ul id="list1">
<li>
<span name="id">123</span>
<span name="date">2012/3/8</span>
</li>
<li>
<span name="id">234</span>
<span name="date">2012/1/5</span>
</li>
<li>
<span name="id">900</span>
<span name="date">2012/9/8</span>
</li>
<li>
<span name="id">787</span>
<span name="date">2012/2/8</span>
</li>
</ul>

<ul id="list2">
<li>
<span name="id">123</span>
<span name="date">2012/3/8</span>
</li>
<li>
<span name="id">234</span>
<span name="date">2012/1/5</span>
</li>
<li>
<span name="id">900</span>
<span name="date">2012/9/8</span>
</li>
<li>
<span name="id">787</span>
<span name="date">2012/2/8</span>
</li>
</ul>


$('button[name="id"]').click(function () {
$('#list1').html($.makeArray($('li')).sort(function (li1, li2) {
return parseInt($(li1).find('span[name="id"]').text(), 10) - parseInt($(li2).find('span[name="id"]').text(), 10);
}));
});

点一下,然后所有的li都跑到list1里面去了
jy02409187 2012-03-08
  • 打赏
  • 举报
回复
($(li1).find('span[name="id"]').text(), 10) 里面的10是什么意思啊 我套在我原代码里面就乱了
jusfr 2012-03-08
  • 打赏
  • 举报
回复
$.makeArray()方法有的,sort是原生方法。
风中叶 2012-03-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jusfr 的回复:]
date自己改写下方法就OK

JScript code

$('button[name="id"]').click(function () {
$('ul').html($.makeArray($('li')).sort(function (li1, li2) {
return parseInt($(li1).find('span[name="id"]').t……
[/Quote]


请问 jquery中有$.makeArray 、 sort()之类的方法?? jquery1.7版本中好像没有这两个方法
jusfr 2012-03-08
  • 打赏
  • 举报
回复
date自己改写下方法就OK
$('button[name="id"]').click(function () {
$('ul').html($.makeArray($('li')).sort(function (li1, li2) {
return parseInt($(li1).find('span[name="id"]').text(), 10) - parseInt($(li2).find('span[name="id"]').text(), 10);
}));
});

87,989

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧