javascript - 如何在文本中添加省略号

标签 javascript jquery ellipsis

我正在尝试创建一个函数,该函数将获取元素的文本,截掉超过 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');

因此,该函数应该获取该元素,删除末尾的多余文本,添加省略号,然后用我刚刚创建的新字符串替换元素中的旧文本。

当我运行该函数时,我没有收到任何错误,但它实际上并没有按应有的方式 chop 文本。这是为什么?

最佳答案

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 ,它将在最后一次出现小于所提供长度的空格时分割文本,因此您不会分割文本中间的单词。

http://codepen.io/supah_frank/pen/EaYzNz

关于javascript - 如何在文本中添加省略号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26871646/

相关文章:

具有 jquery 移动风格的 jQuery-File-Upload 按钮

jquery - 使用 jQuery 选择表中的下一个 <td>

javascript - 如果窗口不够大,则缩放(缩小)内容

R:函数如何使用省略号 (...) 接受变量参数而不将它们复制到内存中?

css - 移动 :after element onto new line on text truncation

javascript - Backbone - 在多个事件后渲染 View

javascript - jQuery的appendTo方法导致 "context is undefined"错误

javascript - 选择相同值时的jQuery选择更改事件

css - jquery mobile ui-select 文本对于 iphone 来说太长了

javascript - 如果没有 eval(),JavaScript 可以编译成二进制文件吗?