我有一个 2500 字的字符串,需要放入不同的DIV
. 我已经使用该text = text.split(' ')
功能来检索每个单词,然后DIVs
填充直到DIV.scrollHeight
变得高于DIV.offsetHeight
,然后进入下一个DIV
。
我遇到的问题是我的 2500 字字符串中的 HTML 标签完全搞砸了:它在不应该的地方关闭了我的<b>
标签,不显示</b>
它应该在的地方,不显示<font
这个标签的一部分,不'不显示</font>
等。
知道为什么吗?
非常感谢!
编辑:根据要求,这是整个 jQuery 代码。提前原谅我的任何错误:)
function addText(texte)
{
// var texte = texte.replace('<', '<');
// var texte = texte.replace('>', '>');
var container = $('DIV[id^=apDiv]').find('DIV#bloc_prim');
console.log('NOMBRE DE CONTAINER : '+container.length);
var length = texte.length;
console.log('LONGUEUR DU TEXTE '+length+' caractères');
// container.html(texte);
var hauteurDiv = container.prop('offsetHeight');
var hauteurContent = container.prop('scrollHeight');
length = Math.floor((length * hauteurDiv)/hauteurContent);
console.log(hauteurContent);
// container.html(texte.substring(0, length));
var hauteurRestante = hauteurContent - hauteurDiv;
console.log(hauteurRestante);
var TABLEAU = texte.split(' ');
// var TABLEAU = texte.match(/<\s*(\w+\b)(?:(?!<\s*\/\s*\1\b)[\s\S])*<\s*\/\s*\1\s*>|\S+/g);
console.log('LONGUEUR TABLEAU : '+TABLEAU.length+' occurences');
// console.log(TABLEAU[4]);
i = 0;
hauteurTotale = container.prop('scrollHeight');
console.log(container.prop('offsetHeight'));
console.log(hauteurTotale);
while(i < TABLEAU.length)
{
while(hauteurTotale <= container.prop('offsetHeight'))
{
container.append(TABLEAU[i]+' ');
i++;
hauteurTotale = container.prop('scrollHeight');
console.log(i+':'+hauteurTotale+' --- '+container.prop('offsetHeight'));
}
if(i < TABLEAU.length)
{
var clone = container.parent('DIV[id^=apDiv]').clone(true); // On copie la DIV
$('BODY').append(clone); // On colle la partie copiée
clone.find('DIV#bloc_prim').empty();
}
var hauteurTotale = clone.find('DIV#bloc_prim').prop('scrollHeight');
console.log(hauteurTotale);
while(hauteurTotale <= clone.find('DIV#bloc_prim').prop('offsetHeight'))
{
if(i < TABLEAU.length)
{
clone.find('DIV#bloc_prim').append(TABLEAU[i]+' ');
i++;
hauteurTotale = clone.find('DIV#bloc_prim').prop('scrollHeight');
console.log(i+':'+hauteurTotale+' --- '+container.prop('offsetHeight'));
}
else
{
break;
}
}
}
console.log(i+'->'+TABLEAU.length);