我有一个非常奇怪的问题,即JavaScript排序会重复结果。
我根据用户的选择根据数据属性对一堆div进行排序。我应该注意到有问题的div事先用ajax拉入他们的容器。
//sort flights
function sortFlights(sortBy) {
var flightDivs = $(".flight-result");
if(sortBy == "journey") {
var sortedFlights = flightDivs.sort(function(a, b){
return $(a).data("journey")-$(b).data("journey");
});
}
else if(sortBy == "depart") {
var sortedFlights = flightDivs.sort(function(a, b){
return $(a).data("departure")-$(b).data("departure");
});
}
else if(sortBy == "arrive") {
var sortedFlights = flightDivs.sort(function(a, b){
return $(a).data("arrival")-$(b).data("arrival");
});
}
else {
var sortedFlights = flightDivs.sort(function(a, b){
return $(a).data("price")-$(b).data("price");
});
}
$(".flight-result").remove();
$("#flights-results").append(sortedFlights);
}
以下是我正在排序的一个div的示例:
<div class="flight-result" data-price="127.02"
data-departure="20161214115500" data-arrival="20161214160000"
data-stops="0" data-journey="000305"></div>
排序正常,但结果会回来两次,例如,如果我有1,2,3,4,5它返回1,1,2,2,3,3,4,4,5 ,5
之前有没有人见过这个问题?
答案 0 :(得分:0)
好的我正在踢自己 - @ Rohan210你的怀疑是正确的,我有一个占位符div隐藏着所有.flight-result div的副本。删除后它正常工作。 DOH。
如果有人感兴趣,这是最终的代码:(感谢AlexK提醒我代码是多么臃肿)
mask