在测试字符长度后执行一个函数

时间:2013-11-12 21:22:52

标签: jquery character-limit

我试图在文本长度达到40个字符时截断div中的文本量,并在截断后添加省略号。这是我的代码:

jQuery(document).ready(function($) {
$(".trim").text(function(index, text) {
return text.substr(0, 40)+' ...';
});
});

问题是即使字符长度小于40个字符,它也会添加省略号,即使文本没有被截断也会添加省略号。所以接下来我尝试了一个条件来运行该函数只有当字符长度小于40个字符时,无济于事:

jQuery(document).ready(function($) {
if($(".trim").length > 40) {
$(".trim").text(function(index, text) {
return text.substr(0, 40)+' ...';
});
}
});

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

你快到了!您的条件不是检查div中文本的长度。您正在检查jQuery对象的.length,它等于1(选择器找到的元素数)。您需要检查里面的实际文本 div的长度。摆脱if外部并在您传递给.text()的函数内移动长度检查:

$(".trim").text(function(index, text) {
    var newText = text;

    if(text.length > 40) {
        newText = text.substr(0, 40) + "...";
    }

    return newText;
});