Я написал несколько JQuery, чтобы разделить HTML-код на определенную высоту.HTML генерируется пользователем и может содержать изображения, поэтому я не могу придумать хороший способ сделать это на стороне сервера.
У меня есть сгенерированный HTML-код, подобный этому:
<div id="1">
<p>Some Text</p>
<p>Some More Text</p>
<p>Even More Text</p>
<p>Enough Text</p>
<p>Too Much Text</p>
</div>
<div id="2">
</div>
Я хочу, чтобы HTML наконец-то выглядел следующим образом: (Разделение содержимого до того, как оно достигнет 60 пикселей в высоту)
<div id="1">
<p>Some Text</p>
<p>Some More Text</p>
<p>Even More Text</p>
<p>Enough Text</p>
</div>
<div id="split">
<p>Too Much Text</p>
</div>
<div id="2">
</div>
Я написал этот JQuery: я думаю, что мне нужно использовать .after возможно, или как-товернитесь в контейнер div и закройте его.$ (this) .parent или $ (this) .closest ()?
var h = 60;
/*Run when (item) is bigger than height.
Check and sum height of each base element, break up into 'h' px high divs*/
function pagebreak(item, h) {
var st = 0; //st = space total
$(item).children().each(function(i, l) {
if (st + $(this).height() <= h) {
st = st + $(this).height();
} else {
$(this).append('</div><div id="split">');
st = 0;
}
});
}
$('div').each(function() {
var len = $(this).first().height();
if (len >= h) {
pagebreak($(this), h);
}
});
Но он возвращает HTML примерно так:
<div id="1">
<p>Some Text</p>
<p>Some More Text</p>
<p>Even More Text</p>
<p>Enough Text<div id="split"></div></p>
<p>Too Much Text</p>
</div>
<div id="2">
</div>
Любая помощь очень ценится.Что я действительно хочу сказать в своей функции, так это разделить элемент на $ this с новым div.Заранее спасибо.
Первый вопрос по StackOverflow, извините, если я что-то сделал неправильно.