Javascript 根据数组中填充的排序顺序对html进行排序

Javascript 根据数组中填充的排序顺序对html进行排序,javascript,jquery,html,arrays,sorting,Javascript,Jquery,Html,Arrays,Sorting,我正在尝试按距离对html列表排序,我不想在标记中放置距离属性。我所做的是呈现商店列表html,在js中我创建一个数组,在其中我保持商店和距离 locations = []; locations.push({ 'store': stores[i], 'cordinate': Math.random() }); 我用这个来分类 locations.sort(dynamicSort('cordinate')); function dynamicSort(property) {

我正在尝试按距离对html列表排序,我不想在标记中放置距离属性。我所做的是呈现商店列表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;
  }
}
locations.sort(dynamicSort('cordinate');
函数dynamicSort(属性){
var-sortOrder=1;
返回函数(a,b){
var结果=(a[属性]b[属性])?1:0;
返回结果*排序器;
}
}
这里是我陷入困境的地方,我如何使用这个数组对我的html进行排序?这里的关键是,我不想因为在那里设置cordinate而使html变得杂乱无章


编辑

问题是如何使用数组中填充的排序顺序对输出html进行排序。因为我懒得填充标记,所以我删除了html和其他我只使用的js

基本上,您需要做的就是按排序顺序对html元素调用append

这将在html元素的末尾追加元素

var sortHTML = function(locations) {
  $.each(locations, function(i, location) {
    var targetElement = $('#' + location.store.id);
    targetElement.parent().append(targetElement)
  });
};
sortHTML(locations);

在这里摆弄:

@posdnost它与此的se html标记无关。但是好的。你使用的把手模板与你的问题非常相关。你的意思是:?将html元素存储在'locations'对象中,然后你可以得到refference t toit@AdiDarachi我确实在Id中找到了一个Id,它引用了实际的html元素,但问题是我如何做到这一点?这实际上更像是我在寻找的。但没有办法只进行排序?我在想这是否可能是性能问题。这与我的答案有什么不同?它使用相同的附加值function@Dejan.S,答案是否定的,没有办法在DOM中移动html元素而不是附加/分离(从DOM中添加/删除元素)@madalinivascu,不同之处在于,您是在执行时执行的,我的函数可以在执行后使用。