限制div中显示的字符而不会丢失格式

时间:2014-02-07 05:31:21

标签: javascript php jquery html

我找到了一个限制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>

1 个答案:

答案 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>