如何切断AJAX加载文本的结尾?

时间:2015-02-24 21:17:05

标签: javascript jquery ajax

我试图从加载了AJAX的元素的末尾切断(截断)额外的字符,其中包含文本。这是我加载元素的方式:

$("#destinationElement").load("/sourcePageName .classWithinPage");

我想将#destinationElement里面的文本长度限制为140个字符,但.classWithinPage中的文本可能会更长,所以我需要在某点之后将其剪掉。如果可能的话,我还想在之后添加省略号。

我之后尝试添加一个可以执行此操作的函数(请参阅下文),但它似乎不起作用,我希望它在将文本添加到#destinationElement之前运行,以便脚本可以执行其工作在显示文字之前。

var maxLength = 140;
function shorten(element) {
  var text = $(element).text();
  if(text.length > maxLength){
    text = text.substring(0, maxLength);
    var lastIndex = text.lastIndexOf(" ");
    text = text.substring(0, lastIndex) + '...';
  }  
  $(element).text(text);
};
shorten('#destinationElement');

^^那不起作用。另外,我想我应该在我的函数中添加我作为上面提到的jQuery加载函数的一部分,我只是不确定如何。

如何在屏幕上显示之前截断正在加载的文字为140个字符?

1 个答案:

答案 0 :(得分:2)

如果要修改数据,请使用$.get方法

$.get('/sourcePageName', function(data) {
    var text = $('<div />', {html : data}).find('.classWithinPage').text();

    if (text.length > 140) {
        text = text.slice(0, 140) + '...';
    }

    $("#destinationElement").text(text);
});