What is the best way to detect runs of dom elements in jQuery?
For example, if I have the following list of items
<ol>
<li class="a"></li>
<li class="foo"></li>
<li class="a"></li>
<li class="a"></li>
<li class="foo"></li>
<li class="foo"></li>
<li class="foo"></li>
<li class="a"></li>
<li class="foo"></li>
<li class="foo"></li>
<li class="foo"></li>
</ol>
Let's say I want to grab all the elements li.fooand wrap them inside my own block <ol>(or any other wrapper) to make something like this.
<ol>
<li class="a"></li>
<li class="foo"></li>
<li class="a"></li>
<li class="a"></li>
<li><ol>
<li class="foo"></li>
<li class="foo"></li>
<li class="foo"></li>
</ol></li>
<li class="a"></li>
<li><ol>
<li class="foo"></li>
<li class="foo"></li>
<li class="foo"></li>
</ol></li>
</ol>
As you can see from the example, I only want to wrap the "runs" of the li.foodom elements (where there are two or more elements li.foo).
I'm not sure about the best / most efficient way to accomplish this with jQuery (or just using javascript).
source
share