我正在尝试创建一个函数,它将获取元素的文本,剪掉80以上的任何字符,并在必要时添加省略号。到目前为止,这是我的代码:
var maxLength = 80;
function shorten(element) {
var text = $('#' + element).text();
var ret = text;
if (text.length > maxLength) {
text = text.substr(0,maxLength-3) + "...";
}
$('#' + element).text(text);
}
shorten('slide1');
因此,该函数应该取元素,删除额外的文本,添加省略号,然后用我刚刚创建的新字符串替换元素中的旧文本。
当我运行该函数时,我没有得到任何错误,但它实际上并没有切断文本。这是为什么?
答案 0 :(得分:1)
var text = "Some Text Goes Here. La La La La!";
var textLength = 10; // Number of characters to cut off after
function shorten(text, textLength){
if(text.length > textLength){
text = text.substring(0, textLength) + '…';
}
return text;
}
var shortText = shorten(text, textLength);
此外,使用HTML字符作为省略号比使用三个句点更好。
我添加了Codepen,显示代码正常工作。另外,我添加了一个函数spaceShorten
,它会在最后一个小于提供的长度的空格处拆分文本,因此不要拆分文本中间的单词。