Как ограничить длину строки нескольких элементов с помощью jquery? - PullRequest
0 голосов
/ 02 апреля 2012

Я хочу ограничить длину строки всех моих $ ("a.paragraph").У меня есть следующий код:

var paragraph = $("a.paragraph").text();
var maxlength = 500;
var strlength = paragraph.length;
if (strlength > maxlength) {
    var introduction    = paragraph.substr(0,maxlength); // cut string
    var search          = introduction.lastIndexOf(" "); // find position of last space (last word cannot be cut)
    introduction        = introduction.substr(0, search); // cut string until last space
    introduction        = introduction + "..."; // add ... in the end
    $("a.paragraph").text(introduction);
}

Этот код перерабатывает только первый элемент и отображает результат во всех абзацах.Как я могу зациклить каждый абзац?

Ответы [ 4 ]

4 голосов
/ 02 апреля 2012

Вы можете использовать функцию jQuery each :

$('a.paragraph').each(function() {
    var paragraph = $(this).text();
    // ... do stuff here
})
2 голосов
/ 02 апреля 2012

Использование .each:

$('a.paragraph').each(function() {
    var paragraph = $(this).text();
    var strlength = paragraph.length;
    if (strlength > maxlength) {
        var introduction    = paragraph.substr(0, maxlength); // cut string
        var search          = introduction.lastIndexOf(" "); // find position of last space (last word cannot be cut)
        introduction        = introduction.substr(0, search); // cut string until last space
        introduction        = introduction + "..."; // add ... in the end
        $(this).text(introduction);
    }
});
1 голос
/ 02 апреля 2012

Вам нужно перебрать каждый элемент. Поведение, которое вы испытываете - это способ работы jQuery по умолчанию.

$("a.paragraph").each(function(i,e) {
    var paragraph = $(e).text();
    var maxlength = 500;
    var strlength = paragraph.length;
    if (strlength > maxlength) {
        var introduction    = paragraph.substr(0,maxlength); // cut string
        var search          = introduction.lastIndexOf(" "); // find position of last space (last word cannot be cut)
        introduction        = introduction.substr(0, search); // cut string until last space
        introduction        = introduction + "..."; // add ... in the end
        $(e).text(introduction);
    }
});
1 голос
/ 02 апреля 2012

Вам нужно найти каждый абзац и обвести его вокруг:

$("a.paragraph").each(function() {
    var paragraph = $(this).text();
    var maxlength = 500;
    var strlength = paragraph.length;
    if (strlength > maxlength) {
        var introduction    = paragraph.substr(0,maxlength); // cut string
        var search          = introduction.lastIndexOf(" "); // find position of last space (last word cannot be cut)
        introduction        = introduction.substr(0, search); // cut string until last space
        introduction        = introduction + "..."; // add ... in the end
        $("a.paragraph").text(introduction);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...