通过jquery限制字符

时间:2013-04-24 19:19:51

标签: javascript jquery

我有一个div显示一堆文字,但我只想显示75个字符,其余的文字被替换为......

<div class="text-info">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation</div>

$('text-info').replaceWith(this).length(75 + "...");

4 个答案:

答案 0 :(得分:5)

var text = $(".text-info").text();
var len = text.length;

if(len > 75){
  $(".text-info").text($(".text-info").text().substr(0,74)+'...  ');
}

答案 1 :(得分:1)

从字面上看你的问题,如果你只想显示75个字符,那么你可以简单地做@MohammadAdil建议。但是你最终会得到79个字符(74 + 3(...)+两个空格。只需要拉72个字符并附加"..."来限制它。当然,如果你真的需要限制是75个可见字符,或者如果您只是意味着帖子的75个字符,然后添加省略号。

我个人的建议是将它留给可以为你做的图书馆(如果可以的话,可以使用一个)。 Underscore是一个相当小的库,其中包含大量方便的实用程序,它可以确定您是否可以内置它们的实现(例如_.each使用Array#forEach(如果已定义) )。话虽这么说,underscore.string是下划线的插件,包含许多usefule字符串操作函数,如_.toSentence,它将采用类似["one", "two", "three"]的数组并返回"one, two and three",但更重要的是得到truncateprune

truncateprune只会在字符串达到限制时执行截断,例如根据其示例:

// Assume the underscore.string functions have bene mixed into _
_.truncate("Hello, World", 5) // "Hello..."
_.truncate("Hello", 10) // "Hello"

truncate函数将剪切文本中间句子,这是prune更清晰的选择,因为它会在最接近的单词中断处将文本切换为指定的长度。根据他们的例子:

_.prune("Hello, cruel world", 15) // "Hello, cruel..."
// for comparison
_.truncate("Hello, cruel world", 15) // "Hello, cruel wo..."

答案 2 :(得分:0)

这样的事情会起作用:

(".text-info").text($(this).text().substr(0, 75)+'...');

另外,不要忘记选择器中的类标识符。 .

答案 3 :(得分:0)

你可以试试这个

$(".text-info").text(function(){
    return $(this).text().length > 75 ? $(this).text().substr(0, 75)+'...' : $(this).text();
});

DEMO.