0

CONTENTEDITABLE DIVサンプル文字列のみ

int main(){

 if((x<3 && x!=5) || x>10)
   //execute statement;

 while((y<10) && (y>1))
   //execute statement;

}

DIV の既存の HTML

<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>

ターゲット 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>

()などのペアを持つことで、すでに を一致させました。次に、 をでbm1, bm2ラップする必要がありopenParen bm(n)ます。ほら、括弧のペアはすでに決定しています。後で評価できるように、それらを全体としてラップする必要があります。ハイライトに近いですが、実際には強調表示しません。ペア間のテキストを評価します。closeParen bm(n)span class = parenWrap

どうすればこれを達成できますか?

私はこれを試しましたが、うまくいきません

$('.openParen, .bm0').first().nextUntil('.closeParen, .bm0').last().wrapAll('<span class="parenWrap"></span>');
//this must loop to all the bm's by the way
4

0 に答える 0