jQuery,jQuery的唯一类列表以相同的顺序设置?

时间:2014-03-07 03:16:52

标签: jquery

是否可以为jQuery提供一个唯一类列表,并返回一个jQuery集,其中元素的顺序与给定的顺序相同。看来默认是以DOM顺序返回。

2 个答案:

答案 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);
});

jsFiddle

这将按DOM顺序自然选择它们,然后根据类名数组的顺序对它们进行排序。

如果你的元素可能包含多个类,那么你需要加强sort()函数的主体。考虑每个班级。