使用javascript将每个特定长度的文本块包装到自己的div中

使用javascript将每个特定长度的文本块包装到自己的div中,javascript,jquery,for-loop,each,word-wrap,Javascript,Jquery,For Loop,Each,Word Wrap,我想把一块文本包装成div,这样每个div都有相同数量的字符。其目标是创建可以在类似书籍的页面之间单击的div,即分页。不过,我在用each()语句将文本块的每一段包装成自己的等长div时遇到了麻烦 Jere的代码Hhich适用于一个div,但不适用于多个div: HTML: 你好,我叫乔。我在一所学校工作。 包 javaScript: $('button').on('click', function(){ var content=$('#content').text(); $('#

我想把一块文本包装成div,这样每个div都有相同数量的字符。其目标是创建可以在类似书籍的页面之间单击的div,即分页。不过,我在用each()语句将文本块的每一段包装成自己的等长div时遇到了麻烦

Jere的代码Hhich适用于一个div,但不适用于多个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" />');   
    }            
 */ 
});
$('button')。在('click',function(){
var content=$('#content').text();
$('#count').text(content.length);
/*var length20;//20个字符长的文本块
如果(内容长度>=20);
$.each(长度20,函数(){
长度20.包裹(“”);
}            
*/ 
});
下面是您是否希望直接编辑代码的示例


如果有人能够编辑这把小提琴来修复它的
每一条()
语句,我将非常感激。

试试这样的方法:

$('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>')
     });
});​
$('button')。在('click',function(){
var content=$('#content').text();
//“5”长砌块
var parts=content.match(/.{1,5}/g);
$('#count').text(parts.length);
$。每个(部分,功能(索引,部分){
$(“正文”)。附加(“”+部分+“”)
});
});​

您好,非常感谢,效果很好!因为这会断掉句子,我意识到我应该根据“a”来匹配同样。你能帮助正则表达式根据长度进行匹配并以句号结束吗?句号优先,但仍然需要接近指定的长度。@Timperson按句号/s分割内容,并对每个部分应用
match
ing。然后将所有部分与句号组合。顺便说一句,我已经更新了
regexp
。使用该选项一个。谢谢,嗯,这是你编辑的最新版本。它似乎仍然按照句号标点优先排列长度。有没有办法扭转这种优先顺序?当我谈论拆分时,你没有正确理解我的评论。不管怎样,看看这个
$('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>')
     });
});​