gpt4 book ai didi

javascript - 按价格排序元素,顺序是10、100、12、13、140?

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

我有一个小的 js 开关方法,用于按标题 (a-z) 和价格(低-高)对一些 div 元素进行排序,但它确实排序正确,例如10 之后是 100,然后是 11?

这是代码

sortPrice: function() {

switch ($('select[name=sortOrder]').val()) {

case('priceAsc'):

$('.adventureRow').sortElements(function(a, b) {
return $(a).attr('id') > $(b).attr('id') ? 1 : -1;
});

break;

case('priceDesc'):

$('.adventureRow').sortElements(function(a, b) {
return $(a).attr('id') < $(b).attr('id') ? 1 : -1;
});

break;

case('alphaAsc'):

$('.adventureRow').sortElements(function(a,b) {
return $(a).attr('title') > $(b).attr('title') ? 1 : -1;
});

break;

case('alphaDesc'):

$('.adventureRow').sortElements(function(a,b) {
return $(a).attr('title') < $(b).attr('title') ? 1 : -1;
});

break;

case('default'):

$('.adventureRow').sortElements(function(a,b) {
return $(a).attr('style') > $(b).attr('style') ? 1 : -1;
});


}

我想我遗漏了一些与将值声明为数字有关的东西,但我不确定是什么。

最佳答案

问题是您正在对数值进行字符串比较....

 return +$(a).attr('id') < +$(b).attr('id') ? 1 : -1;

所以字符串2大于100,因为字符串比较是从左到右,当匹配到2 1, 2 更大...它不比较数值

关于javascript - 按价格排序元素,顺序是10、100、12、13、140?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29820842/

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