我根据数据属性值缩短了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();
});
答案 0 :(得分:2)
您需要为升序和降序排序返回对称结果,该排序也使用负值。
您可以使用您拥有的值并返回它的增量。
return keyA - keyB;
对于降序,您可以颠倒减法的顺序
return keyB - keyA;
在这两种情况下,由于使用减号和隐含的数字转换,数值会转换为数字。
在不同浏览器中获得不同结果的主要原因是,如果订单没有真正不同,则可能会得到不稳定的结果,因为Array#sort
不稳定。