gpt4 book ai didi

javascript - 按数据属性、字母顺序和数字顺序对列表项进行排序

转载 作者:数据小太阳 更新时间:2023-10-29 06:11:00 26 4
gpt4 key购买 nike

我想从 A-Z 然后0-9 对这个列表进行排序。

<ol class="columns">
<li data-char="y">y</li>
<li data-char="1">1</li>
<li data-char="a">a</li>
<li data-char="e">e</li>
<li data-char="c">c</li>
<li data-char="w">w</li>
<li data-char="0">0</li>
<li data-char="9">9</li>
<li data-char="g">g</li>
</ol>

$(".columns li").sort(sort_li).appendTo('.columns');

function sort_li(a, b){
return ($(b).data('char')) < ($(a).data('char')) ? 1 : -1;
}

看了类似的问题,这是我想出的,但它只适用于数字或字母(不是两者)。 https://jsfiddle.net/qLta1ky6/

最佳答案

数字的ASCII码比字母小,所以比较的时候直接加权重就可以了:

$(".columns li").sort(sort_li).appendTo('.columns');

function sort_li(a, b){
var va = $(a).data('char').toString().charCodeAt(0);
var vb = $(b).data('char').toString().charCodeAt(0);
if (va < 'a'.charCodeAt(0)) va += 100; // Add weight if it's a number
if (vb < 'a'.charCodeAt(0)) vb += 100; // Add weight if it's a number
return vb < va ? 1 : -1;
}

Updated JSFiddle here

关于javascript - 按数据属性、字母顺序和数字顺序对列表项进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31365722/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com