Установить ограничение символов для отображения в абзаце - PullRequest
6 голосов
/ 08 ноября 2010

Я извлекаю данные из фида JSON и хочу отобразить максимум 10 символов строки, а затем выполнить ... после этого. Как мне это сделать с JQuery?

Ответы [ 5 ]

11 голосов
/ 08 ноября 2010

Вы можете использовать CSS для настройки многоточия:

.myparagraph {
   white-space: nowrap;
   width: 10em;
   overflow: hidden;
   text-overflow: ellipsis;
}

Тогда нет необходимости в jQuery или другом кодировании.

Ссылки:

(обратите внимание, что первая ссылка - Quirksmode.org является отличным ресурсом, обычно для CSS и Javascript)

6 голосов
/ 08 ноября 2010

Я не проверил это по одной ошибке, поэтому вам, возможно, придется скорректировать плохую индексацию.

var txt = SomeStringFromFeed;
if(txt.length > 10)
{
  txt = txt.substr(0,10) + "...";
}
return txt;
4 голосов
/ 08 ноября 2010

вам не нужен 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
2 голосов
/ 09 ноября 2010

Я не верю, что CSS-решение, упомянутое @spudley, является кросс-браузерным (без поддержки 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('');
    }
0 голосов
/ 08 ноября 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...