У меня длинные названия, и я хочу их обрезать, но так, чтобы слова не ломались, я имею в виду, что между словами не происходит разрезание слова.
Как я могу сделать это с помощью jquery?
От: jQuery усечение текста (стиль читать дальше)
Попробуйте это:
var title = "This is your title"; var shortText = jQuery.trim(title).substring(0, 10) .split(" ").slice(0, -1).join(" ") + "...";
И вы также можете использовать плагин:
Какрасширение строки
String.prototype.trimToLength = function(m) { return (this.length > m) ? jQuery.trim(this).substring(0, m).split(" ").slice(0, -1).join(" ") + "..." : this; };
Использовать как
"This is your title".trimToLength(10);
Решение выше не будет работать, если в исходной строке нет пробелов.
var title = "This is your title"; var shortText = jQuery.trim(title).substring(0, 10) .trim(this) + "...";
function truncateString(str, length) { return str.length > length ? str.substring(0, length - 3) + '...' : str }
Вместо использования jQuery используйте свойство css text-overflow:ellipsis.Он автоматически обрезает строку.
text-overflow:ellipsis
.truncated { display:inline-block; max-width:100px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
с прототипом и без пробела:
String.prototype.trimToLength = function (trimLenght) { return this.length > trimLenght ? this.substring(0, trimLenght - 3) + '...' : this };