2012-03-29 25 views
0

我想將一段文本包裝到div中,以便每個div具有相同數量的字符。我們的目標是製作可在書籍的相似頁面之間點擊的div,即分頁。儘管使用each()語句將文本塊的每個段都包裝爲等長的自己的div,但我遇到了麻煩。使用javascript將每個特定長度的文本塊包裝到它自己的div中

傑爾的一個DIV Hhich工作,但還沒有工作,使多個div代碼:

HTML:

​​

JavaScript的:

$('button').on('click', function(){ 
    var content=$('#content').text(); 
    $('#count').text(content.length);   
    /* var length20; //20 character long text block 
    if(content.length>=20); 
     $.each(length20, function(){ 
    length20.wrap('<div class="new" />'); 
    }    
*/ 
}); 

這裏the fiddle,如果你」 d喜歡直接編輯代碼。

如果有人可能能夠編輯這個小提琴來修復它的each()聲明,我會非常感激。

回答

1

嘗試是這樣的:

$('button').on('click', function(){ 
    var content=$('#content').text(); 
    //'5'-length blocks 
    var parts = content.match(/.{1,5}/g); 
    $('#count').text(parts.length); 
    $.each(parts, function(index, part){ 
     $("body").append ('<div class="New">'+part+'</div>') 
    }); 
});​ 
+0

您好感謝這麼多,偉大工程!由於這句話切斷了句子,我意識到我應該基於擁有「。」來匹配。太。你能幫助正則表達式根據長度進行匹配,並以句點結束嗎?期間優先,但仍需要接近指定的長度。 – 2012-03-29 19:12:56

+0

@timpeterson按照期號/秒分解您的內容,併爲每個部分應用「匹配」。然後將所有部件與週期標誌結合。順便說一句,我已經更新了我的'regexp'。使用那個。 – Engineer 2012-03-29 19:28:48

+0

謝謝,嗯,這是你的編輯新的小提琴。 http://jsfiddle.net/BRtDY/19/。它似乎仍然優先於時間標點符號的長度。有什麼方法可以扭轉優先順序? – 2012-03-29 19:35:35

相關問題