Javascript 根据数组中填充的排序顺序对html进行排序
我正在尝试按距离对html列表排序,我不想在标记中放置距离属性。我所做的是呈现商店列表html,在js中我创建一个数组,在其中我保持商店和距离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) {
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,不同之处在于,您是在执行时执行的,我的函数可以在执行后使用。