Обрезание текста
Всем привет!
Помогите! Не получается осуществить следующую задачу.. У меня есть код: Например: <div class="file"> <div class="zagol">тра ля ля, тра ля ля</div> </div> <div class="file"> <div class="zagol">тра я ля</div> </div> .... При условии, если в заголовке количество символов превышает "5", тогда заголовок обрезается и на конце ставится "...". Помогите осуществить! |
<script type="text/javascript"> window.onload = function(){ div_arr = document.getElementsByTagName('div'); for (var i = 0; i < div_arr.length; i++) { if(div_arr[i].className=='zagol') { if (div_arr[i].innerHTML.length > 5) { div_arr[i].innerHTML = div_arr[i].innerHTML.substr( 0, 5 )+ "..."; } } } }; </script> |
Триви, не учитываешь переносы строк.
|
Триви,
Спасибо большое!))))) ваый, да, но в данном случае можно использовать и "white-space: nowrap" =) |
Цитата:
Кроме того, не думаю, что в заголовке могут встречаться символы переноса.. зы: я чесслово не понимаю зачем вообще такое нужно.. почему бы сразу серверным скриптом не нагенерить так как нужно? :-? |
Кстати, а если в дивах с nowrap будут присутствовать символы перевода строки,
означает ли это, что innerHTML вернет значение без них? :blink: |
Не знаю))
"присутствовать символы перевода строки" - но их там нет))) "почему бы сразу серверным скриптом не нагенерить так как нужно?" Ucoz не такой умный) |
Проверь)
Кстати, что даёт nowrap - запрещает перенос слов что ли? |
Цитата:
<div class="zagol"> тра ля ля, тра ля ля </div>Тут 5 символов будет совсем не те, что ожидается. |
Цитата:
Потому что я забыл мышак в офисе, а тачпад маня нервирует :-E :D Проверь, интересно же! =)) |
Цитата:
или мы щас будем тужиться регулярки для этого писать? :) |
Проверил)
Переводы считаются в innerHTML, и никакой nowrap не спасает) Очень хорошо, что у ТС их нет ;) |
Цитата:
|
Цитата:
nowrap говорит браузеру как выводить содержимое тэга на экран, не больше.. :) |
Цитата:
String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ''); }; |
Цитата:
|
Цитата:
|
Сорри, ляпнул с дуру не то... Не заметил глобальный модификатор. Но тем не менее trim должен резать еще табы. перевод строк... Хотя это мелочь
|
\s - включает в себя и табы и переводы строк. любой whitespace character.
|
Цитата:
|
И в php тоже - any whitespace character.
\s == [ \t\r\n] |
Цитата:
|
Цитата:
на мой скромный взгляд, круглые скобки не нужны)) Зачем нагружать память кампутера? :D Или уж, если очень нравитсо, то так: /(?:^\s*)|(?:\s*$)/g Т.о. наши вайтспесовые символы не будут заноситься в переменные :yes: Не забудь ещё \s{2,} для случая: <div class="file"> <div class="zagol"> тра ля ля, тра ля ля </div> </div> чтобы покоцать множественные пробелы-табы-переводы :D |
Цитата:
родные пхпшные это всё таки POSIX а там \s == [ ] это уже потом по просьбам трудящихся в движок встроили перл-совместимые.. видимо коллега devote очень давно изучал PHP :) :) :) |
Цитата:
|
Часовой пояс GMT +3, время: 19:31. |