gpt4 book ai didi

javascript - 使用 jQuery 对 li 进行排序

转载 作者:行者123 更新时间:2023-11-28 19:25:14 25 4
gpt4 key购买 nike

我有这个脚本,用于对 li 列表进行排序,但是当有多个数字时它不起作用,它会优先使用第一个数字进行排序,所以10 在 2 之前。有没有办法修改它,以便根据数值对其进行排序?

jQuery.fn.sortDomElements = (function() {
return function(comparator) {
return Array.prototype.sort.call(this, comparator).each(function(i) {
this.parentNode.appendChild(this);
});
};
})();

$("#sortable3, #sortable4").children().sortDomElements(function(a,b){
akey = $(a).attr("sortkey");
bkey = $(b).attr("sortkey");
if (akey == bkey) return 0;
if (akey < bkey) return -1;
if (akey > bkey) return 1;
});

最佳答案

您正在比较字符串。比较字符串时,您会得到以下结果:

"10" <  "2"
true

而是强制字符串以 10 为基数的整数:

parseInt("10", 10) <  parseInt("1", 10)
false

试试这个:

$("#sortable3, #sortable4").children().sortDomElements(function(a,b){
akey = parseInt(($(a).attr("sortkey"), 10);
bkey = parseInt($(b).attr("sortkey"), 10);
if (akey == bkey) return 0;
if (akey < bkey) return -1;
if (akey > bkey) return 1;
});

应该修复它。

关于javascript - 使用 jQuery 对 li 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28007330/

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