Envelopper une paire de <span> ayant un nom de classe similaire

Chaîne d' échantillons DIV CONTENEURABLE uniquement

int main(){ if((x<3 && x!=5) || x>10) //execute statement; while((y<10) && (y>1)) //execute statement; } 

HTML EXISTANT DU DIV

 <div id="board_code"> <div>int main<span class="openParen bm1">(</span><span class="closeParen bm1">)</span></div> <div></div> <div>if<span class="openParen bm2">(</span><span class="openParen bm3">(</span>x<3 && x!=5<span class="closeParen bm3">)</span> || x>10<span class="closeParen bm2">)</span></div> <div>//execute statement;</div> <div>while<span class="openParen bm4">(</span><span class="openParen bm5">(</span>y<10<span class="closeParen bm5">)</span> && <span class="openParen bm6">(</span>y>1<span class="closeParen bm6">)</span><span class="closeParen bm4">)</span></div> <div>//execute statement;</div> <div>}</div> </div> 

CIBLE HTML

 <div id="board_code"> <div>int main<span class="parenWrap"><span class="openParen bm1">(</span><span class="closeParen bm1">)</span></span></div> <div></div> <div>if<span class="parenWrap"><span class="openParen bm2">(</span><span class="parenWrap"><span class="openParen bm3">(</span>x<3 && x!=5<span class="closeParen bm3">)</span></span> || x>10<span class="closeParen bm2">)</span></span></div> <div>//execute statement;</div> <div>while<span class="parenWrap"><span class="openParen bm4">(</span><span class="parenWrap"><span class="openParen bm5">(</span>y<10<span class="closeParen bm5">)</span></span> && <span class="parenWrap"><span class="openParen bm6">(</span>y>1<span class="closeParen bm6">)</span></span><span class="closeParen bm4">)</span></span></div> <div>//execute statement;</div> <div>}</div> </div> 

J'ai déjà combiné le () en ayant une paire de bm1, bm2 , etc. Maintenant, j'ai besoin d'envelopper le openParen bm(n) pour closeParen bm(n) avec span class = parenWrap

Comment puis-je atteindre cet objectif?

SIMPLIFIÉ

 <span class="parenWrap">((x<3 && x!=5) || x>10)</span> <span class="parenWrap">(x<3 && x!=5)</span> <span class="parenWrap">((y<10) && (y>1))</span> <span class="parenWrap">(y<10)</span> <span class="parenWrap">(y>1)</span> 

Pour une compréhension plus facile, ils deviendront ainsi, en conservant les étiquettes d'extension qu'ils ont déjà

MISE À JOUR basé sur @ pdoherty926 answer

La logique est quelque chose comme

 //if i have 3 pairs of bm's for(var xx=1; xx<4; xx++){ $('.openParen bm'+xx).nextUntil('.closeParen bm'+xx).andSelf().wrapAll('<span class="parenWrap"></span>'); }//for 

mais ça ne fonctionne pas.

 <div> one <span class="openParen bm1">(</span> <span>sometext here</span> <span class="closeParen bm1">)</span> </div> $('.openParen').each(function () { $(this).nextUntil('.closeParen').andSelf().wrapAll('<span class="parenWrap"></span>'); }); 

Violon