首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按子元素的数据id对li进行排序- jQuery

按子元素的数据id对li进行排序- jQuery
EN

Stack Overflow用户
提问于 2012-06-27 09:07:15
回答 1查看 2.5K关注 0票数 1

因此,我尝试按照每个<li>中子元素的data-id属性对一个无序列表进行排序。如何将此元素作为目标,以便按其值排序?

下面是我当前的代码:

代码语言:javascript
复制
    $("#sort_popularity").live("click", function() {
        var listitems = list.children('li').get();

        listitems.sort(function(a, b) {
            var compA = $(a).("#subject_popularity");
            var compB = $(b).("#subject_popularity");
            return compA < compB;
        });

        $.each(listitems, function(index, item) {
            list.append(item); // (List is defined elsewhere in my code)
        });
    });

HTML:

代码语言:javascript
复制
<a href="#" id="sort_popularity">Sort</a>

<ul>
    <li><span id="popularity" data-id="10">10</li>
    <li><span id="popularity" data-id="20">20</li>
    <li><span id="popularity" data-id="5">5</li>
</ul>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-27 09:16:01

代码语言:javascript
复制
// for ASC.
var lis = $('ul li');

lis.sort(function(a, b) {
    return parseInt($('span', a).data('id'), 10) > parseInt( $('span', b).data('id'), 10);
});

$('ul').html(lis);

代码语言:javascript
复制
// for DESC.
var lis = $('ul li');

lis.sort(function(a, b) {
    return parseInt( $('span', a).data('id'), 10) < parseInt( $('span', b).data('id'), 10);
});

$('ul').html(lis);

备注

更改spanid%s,多个span没有相同的id,并关闭您的span标签(可能是打字错误)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11218043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档