Выполнить функцию после проверки длины символа
Я пытаюсь обрезать объем текста в 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;
});