我从JSON提要中提取,我只想显示字符串的最多10个字符,然后再做...之后。我如何使用JQuery做到这一点?
答案 0 :(得分:11)
您可以使用CSS设置省略号:
.myparagraph {
white-space: nowrap;
width: 10em;
overflow: hidden;
text-overflow: ellipsis;
}
然后就不需要任何jQuery或其他编码。
参考文献:
(请注意,第一个链接 - Quirksmode.org通常是CSS和Javascript的优秀资源)
答案 1 :(得分:6)
我没有通过一个错误检查这个问题,所以你可能需要调整糟糕的索引。
var txt = SomeStringFromFeed;
if(txt.length > 10)
{
txt = txt.substr(0,10) + "...";
}
return txt;
答案 2 :(得分:4)
你不需要jquery,JS可以这样做:
string.substr(start,length) start The index where to start the extraction. First character is at index 0 length The number of characters to extract. If omitted, it extracts the rest of the string
答案 3 :(得分:2)
我不相信@spudley提到的CSS解决方案是跨浏览器(没有firefox支持)。假设你当然关心那个。他提供的第一个链接甚至说明了页面右上角的有限支持。
现在,我说我有一个很好的小功能可能对你需要的东西有点过分,但我发现我在类似情况下经常使用它。下面的代码已被注释,但这样做只是根据设置的限制在最后一个完整单词之后插入省略号。
所以你可以回来“狗跳......”而不是“狗跳过来......”
// ==============================================================================================
// Truncate a string to the given length, breaking at word boundaries and adding an elipsis
// @param str - String to be truncated
// @param limit - integer Max length of the string
// @returns a string
// ==============================================================================================
function truncate(str, limit) {
var chars;
var i;
// check if what was passed as a string is actually a string
if ( typeof(str) != 'string') {
return '';
}
// create an array of the chars in the string
chars = str.split('');
// if the length is greater than the set limit, process for truncating
if (chars.length > limit) {
// while the char count is greater than the limit,
for (i = chars.length - 1; i > -1; --i) {
// if char count is still greater, redefine the array size to the value of i
if (i > limit) {
chars.length = i;
}
// if char count is less than the limit keep going until you hit a space
// and redefine the array size to the value of i
else if (' ' === chars[i]) {
chars.length = i;
break;
}
}
// add elipsis to the end of the array
chars.push('...');
}
// return the array as a string
return chars.join('');
}
答案 4 :(得分:0)