JavaScript排序正在复制结果
我有一个非常奇怪的问题,JavaScript排序复制了结果 我根据用户的选择,根据数据属性对一组div进行排序。我应该注意到,有问题的div是使用ajax预先拉入容器的JavaScript排序正在复制结果,javascript,jquery,Javascript,Jquery,我有一个非常奇怪的问题,JavaScript排序复制了结果 我根据用户的选择,根据数据属性对一组div进行排序。我应该注意到,有问题的div是使用ajax预先拉入容器的 //sort flights function sortFlights(sortBy) { var flightDivs = $(".flight-result"); if(sortBy == "journey") { var sortedFlights = flightDivs.sort(f
//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
以前有人见过这个问题吗?好吧,我在自责-@Rohan210你的怀疑是对的,我有一个占位符div,里面藏着所有的.flight result div的副本。拆下后,它工作正常。DOH 如果有人感兴趣,这里是最后的代码:(感谢AlexK提醒我代码有多臃肿)
你能上传完整的代码吗?尝试使用
else if
为什么不使用else if或者switch?sortBy
在函数中的任何点都不会改变,所以else if
或者switch
不会有任何区别。在任何情况下,您都必须展示一个复制问题的完整示例。@OwainReed它在中运行良好。
function sortFlights(sortBy) {
var flightDivs = $("#flights-results .flight-result");
flightDivArray = $.makeArray(flightDivs);
var sortedFlights = flightDivArray.sort(function(a, b){
return $(a).data(sortBy)-$(b).data(sortBy);
});
$("#flights-results .flight-result").remove();
$("#flights-results").append(flightDivArray);
}