@booogabooo

Почему не работает trim?

Есть поле с классом .metal-counts
Если количество знаков в поле превышает m, нужно обрезать текст и вставить в конец kk
<script type="text/javascript">
			$(document).ready(function(){
				String.prototype.trimToLength = function(m) {
  return (this.length > m) 
    ? jQuery.trim(this).substring(0, m).split(" ").slice(0, -1).join(" ") + "..."
    : this;
};
$(".metal-counts").trimToLength(2);
			});
	</script>

Что не так? Не разобрался...
  • Вопрос задан
  • 3252 просмотра
Пригласить эксперта
Ответы на вопрос 1
benbor
@benbor
Помог ответ - не забудь лайкнуть
Начните с просто JS кода, научитесь программировать, а уж потом пытаться работать с библиотеками. Для банальной задачи вы заюзали jquery. Заюзали не правильно не только с точки зрения архитектуры, но и реализации.
Чтобы не быть голословным:
1. Когда выполнится строчка $(".metal-counts").trimToLength(2); прототип строки еще не будет изменен, ибо document ready будет позже.
2. Селектор jquery возвращает объект, который наследуется от массива, а не строки
3. Даже если вы достанете первый элемент масива, то он тоже не потомок строки, а встроенный объект HTMLDomElement ( могу перепутать точное название)
4. JQuery селектор только возвращает контент елемента, заполнить его нужно другим образом
5. Изменять прототип чтобы вызвать в одном месте, не самое лучшее решение
и это только то, что бросается в глаза
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы