ada*_*ord 5 javascript jquery jquery-1.5
假设我有一个如下所示的列表:
<ul>
<li id="q"></li>
<li id="w"></li>
<li id="e"></li>
<li id="r"></li>
<li id="t"></li>
<li id="y"></li>
<li id="u"></li>
<li id="i"></li>
<li id="o"></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我需要做这样的事情:
function get_important_elements() {
// completely contrived;
// elements are guaranteed to be contained within same ul
// but nothing else unique in common (class, attrs, etc)
return $('#q, #w, #r, #u, #i, #o');
}
function group_adjacent($elems) {
return $elems; //:(
}
$(function () {
var $filtered_list = get_important_elements();
var groups = group_adjacent($filtered_list);
// groups should be
// (shown by ID here, should contained actual elements contained
// within jQuery objects):
// [$([q, w]), $([r]), $([u, i, o])]
});
Run Code Online (Sandbox Code Playgroud)
我该怎么办?
请注意,列表中使用的 ID 和类是 100% 人为的。在我以此为基础的实际代码中,我有一组li元素,它们li是单个.s 文件中包含的s的子集ul。这个子集是由它们的内容决定的,这些内容对于手头的问题并不重要,而不是由班级决定。他们只在示例中共享一个类,以便于理解我的观点。
function group_adjacent($elems) {
var rArr = [],
currArr = $([]);
$elems.each(function() {
var $this = $(this);
currArr = currArr.add($this);
if (!$elems.filter($this.next()).length) {
rArr.push(currArr);
currArr = $([]);
}
});
return rArr;
}
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/adamjford/5q8fZ/3/