我有一个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 + "...");
答案 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"
,但更重要的是得到truncate
和prune
。
truncate
和prune
只会在字符串达到限制时执行截断,例如根据其示例:
// 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();
});