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