我根据数据属性值来做空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();
    });

最佳答案

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

您可以使用您拥有的值并返回其差值。

return keyA - keyB;


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

return keyB - keyA;


在这两种情况下,由于使用负号并将隐式转换为数字,因此将值转换为数字。

在不同的浏览器中获得不同结果的主要原因是,如果顺序不是真的不同,您可能会得到不稳定的结果,因为Array#sort不稳定。

10-06 05:27
查看更多