我根据数据属性值来做空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
不稳定。