我找到了一个限制div中字符的代码,但是当我的字符串格式化为html时,它无效。
var myDiv = $('.credits');
myDiv.text(myDiv.text().substring(0,162));
我想限制div中的字符,但不会丢失格式。我可以使用php,javascript或jquery。
提前感谢您的帮助。
myDiv的HTML结构:
<p>this is my test <b>hello</b> <i>world</i></p>
答案 0 :(得分:0)
试试这个
<body>
<div id="test_div">
<h1>TITRE</h1>
<p><strong>Texte en gras</strong><br />
<em>Texte en italique</em><i> texte avec balise i</i> <span>texte normale </span><strong> autre gras</strong></p>
</div>
<script>
$(function(){
var nb_limit=5 ,nb_all_charac=0,clean_all=false;
var fonc_clean_balise=function($v_element,maxi_chara){
if($v_element.children().length)
$v_element.children().each(function(index, element) {
var $child=$(element);
fonc_clean_balise($child,maxi_chara);
maxi_chara=(maxi_chara-$child.text().length);
maxi_chara=(maxi_chara<0)?0:maxi_chara;
});
else{
$v_element.text($v_element.text().substring(0,maxi_chara));
}
};
$('#test_div').children().each(function(index, element) {
$element=$(element);
if(!clean_all){
nb_all_charac+=$element.text().length;
if(nb_all_charac>nb_limit){
clean_all=true;
var lower_limit=nb_limit-nb_all_charac;
nb_limit=(lower_limit<0)?nb_limit:lower_limit;
fonc_clean_balise($element,nb_limit);
}
}else{
fonc_clean_balise($element,0);
}
});
});
</script>
</body>