Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jquery对行进行排序_Javascript_Jquery - Fatal编程技术网

Javascript 如何使用jquery对行进行排序

Javascript 如何使用jquery对行进行排序,javascript,jquery,Javascript,Jquery,如何使用jquery对行进行排序。我的目标是找到价格最低的商品。不是真的整理桌子 下面的代码总是显示实际不正确的第一行 var rows = $('tr'); rows.sort(function(a, b){ var p1 = parseInt(a.querySelector('td.item') ? a.querySelector('td.item').innerText : 0) var p2 = parse

如何使用jquery对行进行排序。我的目标是找到价格最低的商品。不是真的整理桌子

下面的代码总是显示实际不正确的第一行

        var rows =  $('tr');
        rows.sort(function(a, b){
            var p1 = parseInt(a.querySelector('td.item') ? a.querySelector('td.item').innerText : 0)
            var p2 = parseInt(b.querySelector('td.item') ? b.querySelector('td.item').innerText : 0);
            return p1 > p2;
        });
        console.log(rows[0])

排序函数应该返回p1-p2,小于时需要负数,等于时需要0,大于时需要正数,p1>p2的布尔值

您可以使用Intl.Collator创建一个比较函数

const naturalSort = new Intl.Collator(undefined, { numeric: true, sensitivity: 'base' }).compare;

rows.sort((a, b) => naturalSort(
  a.querySelector('td.item') && a.querySelector('td.item').innerText,
  b.querySelector('td.item') && b.querySelector('td.item').innerText
));

console.log(rows[0]);
它将为您处理数字比较