2011-10-19 1 views
1

jqueryで簡単なhtmlエディタを作成しています。javascript:split html by class

は、私は、このHTMLを持っていると言う:

<div id="content"> 
    page 1 
<div class="pageBreak"></div> 
    page 2 
<div class="pageBreak"></div> 
    page 3 
</div> 

私はこの出力を持つようにpageBreaksで私のコンテンツを分割したい:

page1 buffer: page 1 

page2 buffer: <div class="pageBreak"></div>page 2 

page3 buffer: <div class="pageBreak"></div>page 3 

アイデア?

+5

'$( '。pageBreak:eq(0)')。nextUntil( '。pageBreak')'? – zzzzBov

+0

ありがとう - 私はnextUntilについて知りませんでした – CurlyFro

答えて

0

あなたのページはHTMLタグで囲まれていないため(この問題を解決するDOMに優しい方法です)、content divのHTMLを自分で処理してコンテンツを分割しなければなりませんページ。正規表現を使って各ページブレークでそのコンテンツを分割する方法の1つがあります。

var t = $("#content").html(); 
var pages = t.split(/<div\s+class\s*=\s*['"]?pageBreak["']?\s*>\s*<\/div>/i); 

この時点で、ページ配列は各ページ区切りの間に内容を持ちます。

そして、作業例:http://jsfiddle.net/jfriend00/wpyH2/

P.S.ブラウザは常にあなたがページに入れたのと同じinnerHTMLを返すとは限らないので、正規表現は非常に一般的なものです。

関連する問題