我正在尝试按距离对html列表进行排序,我不想要将distance属性放入我的标记中。我做的是我渲染商店列表html,在js我创建一个数组,我保持商店和距离。
locations = [];
locations.push({
'store': stores[i],
'cordinate': Math.random()
});
我用这个
排序locations.sort(dynamicSort('cordinate'));
function dynamicSort(property) {
var sortOrder = 1;
return function(a, b) {
var result = (a[property] < b[property]) ? -1 : (a[property] > b[property]) ? 1 : 0;
return result * sortOrder;
}
}
这是我遇到困难的地方,如何使用此数组对html进行排序?这里的关键是我不想把我的html弄得乱七八糟。
的修改
问题是关于使用数组中填充的排序顺序对输出html进行排序。因为我懒得填充标记,所以我删除了我只使用的html和其他js。
答案 0 :(得分:1)
基本上您需要做的就是在排序顺序中对html元素调用追加。
这会将元素附加到html元素的末尾。
var sortHTML = function(locations) {
$.each(locations, function(i, location) {
var targetElement = $('#' + location.store.id);
targetElement.parent().append(targetElement)
});
};
sortHTML(locations);