截取文章标题一定字数,后加省略号的方法

文章标题字数长短不一,当产生标题列表时就会出现一些布局上的问题,如过长的标题会以多行显示,破坏网页的美观。所以在产生标题列表时可以对标题进行一定的处理,如为每一行标题截取一定字数,而把后面的字用省略号表示。方法如下

var sliceNewsTitle=function(obj, number){

        var count = [];
        var originalTitle = [];
        var smallTitle = [];
        for (var i = 0; obj[i]; i++) {
            count[i] = 0.0;
            originalTitle[i] = $.trim($(obj[i]).html());
            for (var num = 0; num < originalTitle[i].length; num++) {
                count[i] += originalTitle[i].charCodeAt(num) <= 128 ? 0.5 : 1;
            }
            count[i] = Math.round(count[i]);
            if (count[i] < number) {
                $(obj[i]).html(originalTitle[i]);
            } else {
                smallTitle[i] = originalTitle[i].substr(0, number - 1) + "...";
                $(obj[i]).html(smallTitle[i]);
            }
        }

}

上述方法结合了jQuery中的一些选择器及trim()、html()方法,方法中的参数分别为标题列表中用标题的类名进行选择、要截取的字符数目。在截取前先进行一次计数,即将半角字符长度计为0.5,全角字符长度计为1,然后使用js的substr()方法进行截取。

posted @ 2011-05-20 15:41  luckyadam  阅读(3224)  评论(27编辑  收藏  举报
luckyadam