javascript - 客户端在 <li> 标签值内排序

标签 javascript jquery client-side

我有一个像这样的 HTML

<div>
<ul id="ulId">
    <li id="liId1">
        <span id="spn1-Li1">YVariable1</span>
        <span id="spn2-Li1">XVariable2</span>
        <span id="spn3-Li1">ZVariable3</span> 
    </li>
    <li id="liId2">
        <span id="spn1-Li2">ZVariable1</span>
        <span id="spn2-Li2">YVariable2</span>
        <span id="spn3-Li2">XVariable3</span> 
    </li>
    <li id="liId3">
        <span id="spn1-Li3">XVariable1</span>
        <span id="spn2-Li3">ZVariable2</span>
        <span id="spn3-Li3">YVariable3</span> 
    </li>
</ul>
</div>

View 是这样的

YVariable1 XVariable2 ZVariable3
ZVariable1 YVariable2 XVariable3
XVariable1 ZVariable2 YVariable3

但我需要根据第一个跨度值对结果进行排序,其余的“

  • ”应该相同。意味着单击“按按钮排序”后的结果应如下所示。

     XVariable1 ZVariable2 YVariable3
     YVariable1 XVariable2 ZVariable3
     ZVariable1 YVariable2 XVariable3
    

    我需要在客户端(javascript 或 jQuery)使用它。 我尝试了多种方法,但没有得到我所期望的结果。

    我现在有这段代码,并且以类似的方式进行了相同的更改

    $('#btnOrderBy').click(function () {
        var data = [];
        $('#ulId li').each(function (item, value) {
            $('span', value).each(function (i, v) {
                data.push($(this).text());
            });
        });
        console.log(data.sort());
    });
    

  • 最佳答案

    我使用了这段代码。

    $('#ulId').html($("#ulId li").sort(asc_sort));
    function asc_sort(a, b){
        return ($(b).find('span:first-child').text()) < ($(a).find('span:first-child').text()) ? 1 : -1;    
    }
    

    link to jsFiddle

    关于javascript - 客户端在 <li> 标签值内排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17597304/

    相关文章:

    javascript - 客户端和服务器端编程有什么区别?

    php - 格式化链接以轻松更改网站位置(例如在另一个网站的子目录中)

    javascript - FullCalendar - 我应该期望什么级别的事件呈现性能?

    javascript - jQuery mobile 1.3.0 :"Uncaught Error: no such method ' 刷新'表格小部件实例“

    javascript - 如何告诉 .hover() 等待?

    javascript - jQuery Transit 排队转换只能在 id 上正常工作,但不能在类上正常工作

    javascript - 如何从 flatTreeNode 填充树?

    javascript - 多个值的颜色转换器

    timer - 以秒级精度为用户任务计时

    algorithm - 最小化二维坐标映射的快速算法