Выполнить функцию после проверки длины символа

Я пытаюсь обрезать объем текста в div, когда длина текста достигает 40 символов, и добавить усечение после усечения. Это мой код:

jQuery(document).ready(function($) {
$(".trim").text(function(index, text) {
return text.substr(0, 40)+' ...';
});
});

Проблема в том, что он добавляет многоточие, даже если длина символа меньше 40 символов, добавляя многоточие, даже если текст не обрезан. Итак, затем я попробовал условно запустить функцию, только если длина символа меньше 40 символов, но безрезультатно:

jQuery(document).ready(function($) {
if($(".trim").length > 40) {
$(".trim").text(function(index, text) {
return text.substr(0, 40)+' ...';
});
}
});

Есть идеи?

1 ответ

Решение

Ты почти там! Ваше условие не проверяется по длине текста в div. Вы проверяете .length объекта jQuery, который был бы равен 1 (количество элементов, найденных селектором). Вы должны проверить длину фактического текста внутри div, Избавиться от if снаружи и переместите проверку длины внутри функции, которую вы передаете в .text():

$(".trim").text(function(index, text) {
    var newText = text;

    if(text.length > 40) {
        newText = text.substr(0, 40) + "...";
    }

    return newText;
});
Другие вопросы по тегам