从填充在数组中的排序顺序排序html

时间:2016-10-18 08:21:44

标签: javascript jquery html arrays sorting

我正在尝试按距离对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弄得乱七八糟。

My fiddle is right here


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

1 个答案:

答案 0 :(得分:1)

基本上您需要做的就是在排序顺序中对html元素调用追加

这会将元素附加到html元素的末尾。

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

在这里摆弄:https://jsfiddle.net/wbcj026x/1/