是否可以为jQuery提供一个唯一类列表,并返回一个jQuery集,其中元素的顺序与给定的顺序相同。看来默认是以DOM顺序返回。
答案 0 :(得分:2)
将一个DOM节点数组传入jQuery构造函数以保证顺序。这是一种方法:
$($.map(array_of_selectors, function(selector) {
return $.makeArray($(selector));
}));
您可以将$
的调用替换为document.getElementsByClassName
,因为这两个结果都会转换为元素数组。
答案 1 :(得分:0)
是的,这是你可以做到的一种方式。
var classesInOrder = ["tom", "james", "bob"];
var $elementsInOrder = $("." + classesInOrder.join(", .")).sort(function(a, b) {
return $.inArray(a.className, classesInOrder)
- $.inArray(b.className, classesInOrder);
});
这将按DOM顺序自然选择它们,然后根据类名数组的顺序对它们进行排序。
如果你的元素可能包含多个类,那么你需要加强sort()
函数的主体。考虑每个班级。