Jquery排序功能无法在Chrome浏览器上运行

时间:2017-08-11 20:40:42

标签: javascript jquery

我根据数据属性值缩短了div。我现有的代码在Firefox上正常运行,但它无法在Chrome浏览器上运行。

这是我的代码:

$('select#shorting-job').change(function(e) {
            var $list = $('.adsence-right');
            var $productList = $('div.show-jobs-in-right',$list);
            $productList.sort(function(a, b){
                var keyA = $(a).attr("data-salary");
                var keyB = $(b).attr("data-salary");
                if($('#shorting-job').val()=='Salary'){
                  return false; 
                }else if($('#shorting-job').val()=='asc'){
                    return (parseInt(keyA) > parseInt(keyB)) ? 1 : 0;
                } else {
                    return (parseInt(keyA) < parseInt(keyB)) ? 1 : 0;
                }
            });
            $.each($productList, function(index, row){
                $list.append(row);
            });
            e.preventDefault();
    });

1 个答案:

答案 0 :(得分:2)

您需要为升序和降序排序返回对称结果,该排序也使用负值。

您可以使用您拥有的值并返回它的增量。

return keyA - keyB;

对于降序,您可以颠倒减法的顺序

return keyB - keyA;

在这两种情况下,由于使用减号和隐含的数字转换,数值会转换为数字。

在不同浏览器中获得不同结果的主要原因是,如果订单没有真正不同,则可能会得到不稳定的结果,因为Array#sort不稳定。