Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Обрезание текста на определенное количество символов. (https://javascript.ru/forum/events/44827-obrezanie-teksta-na-opredelennoe-kolichestvo-simvolov.html)

hfts_rider 03.02.2014 20:30

Обрезание текста на определенное количество символов.
 
Хочу сделать обрезание текста на определенное количество символов и добавление в конце "..." (если теста больше чем задано для обрезания).

Если в "input" сразу ввести и задать "value" тогда работать будет, а если я сам хочу ввести, то не удается взять текст который написан на данный момент в "input".

Объясните что не так в коде, Спасибо! :thanks:

<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>12345</title>
<style>
*{margin:0;padding:0}
</style>

</head>
<body>
	<div id="textShortBlock">
		<input type="text" id="strId">
		<input type="text" id="maxLengthId">
		<label id="strResult"></label>
		<input type="submit" id="strIdBtn">
	</div>
	
<script>
	var str,
		maxLength,
		strResult = document.getElementById('strResult'),
		strIdBtn = document.getElementById('strIdBtn'),
		maxLengthVal = document.getElementById('maxLengthId').value,
		strVal = document.getElementById('strId').value;

function textShort(str, maxLength) {
		if (str.length > maxLength) {
			return str.slice(0, maxLength) + '...';
		}
		return str;
}

strIdBtn.onclick = function() {
	strResult.innerHTML = textShort(strVal, maxLengthVal);
}
</script>
</body>
</html>

рони 03.02.2014 20:34

Цитата:

Сообщение от hfts_rider
Объясните что не так в коде,

24 и 25 строку в начало 35

рони 03.02.2014 20:36

hfts_rider,
ну и числа бы желательно а не строки где необходимо.

hfts_rider 03.02.2014 20:38

Спасибо, работает, а можете объяснить почему когда присвоил выше оно не находило? я же не в отдельной функции делал присвоение.

рони 03.02.2014 21:01

hfts_rider,
когда создали переменную - её значение больше неизменяется --- когда переменная в функции каждый раз при выполнении функции её значение заносится по новой - вот как-то так )))

hfts_rider 03.02.2014 22:01

Да я пока шел с работы домой, до меня дошло))
Вначале я присвоил переменную и она действительно не меняется(так как поле пустое, присваивается пустое значение), а если внести переменную в событие, оно берет значение на данный момент(в момент при клике ищет значение "value" и применяет его).
Спасибо!

Cuntmann 04.02.2014 14:36

Цитата:

Сообщение от hfts_rider
Хочу сделать обрезание...

Привлекло начало топика, заподозрил

kostyanet 05.02.2014 14:57

В css предусмотрено

overflow: hidden;
white-space:nowrap;
text-overflow: ellipsis;


Часовой пояс GMT +3, время: 20:36.