[英]Sort element by numerical value of data attribute WITHOUT Jquery
我将如何将这段代码转换为常规javascript?
function sortList(listName,dataName){
var $people = $(listName);
$peopleli = $people.children('.leader-mobile');
$peopleli.sort(function(a,b){
console.log(b);
var an = a.getAttribute(dataName),
bn = b.getAttribute(dataName);
if(an < bn) {
return 1;
}
if(an > bn) {
return -1;
}
return 0;
});
$peopleli.detach().appendTo($people);
}
它像
sortList($('#myList'),'data-close');
我试图基于数据属性对列表进行排序,而我不能使用jQuery。
我受jqMobi框架限制使用jquery,jqMobi框架仅具有最小的jquery兼容性。
我发现在找到使jqMobi和Jquery一起玩的方法之前。 我想到了Id首先学习如何在纯JavaScript中实际进行操作
我最终以这种方式解决了问题……首先只是对对象进行排序,然后将排序后的对象应用于DOM,而不是从DOM中获取元素并在放置后对其进行排序。 更快更好地工作
var sort_by = function(field, reverse, primer){
var key = primer ?
function(x) {return primer(x[field])} :
function(x) {return x[field]};
reverse = [-1, 1][+!!reverse];
return function (a, b) {
return a = key(a), b = key(b), reverse * ((a > b) - (b > a));
}
}
salesSort.sort(sort_by('sales',false,parseInt));
unitSort.sort(sort_by('units',false,parseInt));
closeSort.sort(sort_by('close',false,parseInt));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.