我试图从加载了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个字符?
答案 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);
});