设置要在段落中显示的字符限制

时间:2010-11-08 17:14:10

标签: jquery json

我从JSON提要中提取,我只想显示字符串的最多10个字符,然后再做...之后。我如何使用JQuery做到这一点?

5 个答案:

答案 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)