Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2015, 14:46   #1
nikolokaputik80
Пользователь
 
Регистрация: 30.09.2015
Сообщений: 74
По умолчанию Обрезка лишнего текста, есть проблема

Привет!
помогите пожалуйста со скриптом, есть такой рабочий код
он обрезает лишник код

вот пример, он работает исправно
в браузере выведет так
В названии очень много текста...
логика такая после 30 знаков идет обрезка, и в браузере выводит
В названии очень много текста...

Код HTML:
<div id="title">В названии очень много текста и мне нужно его обрезать</div>


<script>
function title() {
var elem, size, text;
elem = document.getElementById('title');
text = elem.innerHTML;
size = 40;
if (text.length > size) {
text = text.slice(0, 30);
}
elem.innerHTML = text + '...';
}
title();
</script>


но есть проблема у меня 20 таких заголовков

Код HTML:
<div id="title">В названии очень много текста и мне нужно его обрезать</div>
<div id="title">В названии очень много текста и мне нужно его обрезать</div>
<div id="title">В названии очень много текста и мне нужно его обрезать</div>
<div id="title">В названии очень много текста и мне нужно его обрезать</div>
<div id="title">В названии очень много текста и мне нужно его обрезать</div>
<div id="title">В названии очень много текста и мне нужно его обрезать</div>


и в браузере идет обрезка только первой верхней строки, вот пример вывода браузера

В названии очень много текста...
В названии очень много текста и мне нужно его обрезать
В названии очень много текста и мне нужно его обрезать
В названии очень много текста и мне нужно его обрезать
В названии очень много текста и мне нужно его обрезать
В названии очень много текста и мне нужно его обрезать


вопрос как мне сделаь что бы выводило
В названии очень много текста...
В названии очень много текста...
В названии очень много текста...
В названии очень много текста...
В названии очень много текста...
В названии очень много текста...

т.е. резало везде текст который
находится в
Код HTML:
<div id="title">текст который нужно резать</div>
спасибо жду ответа.
nikolokaputik80 вне форума Ответить с цитированием
Старый 09.11.2015, 15:32   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
но есть проблема у меня 20 таких заголовков

Код HTML:
<div id="title">В названии очень много текста и мне нужно его обрезать</div>
<div id="title">....
Ваш HTML нарушает правила. ID на то и ИДЕНТИФИКАТОР, чтобы не повторяться!

вот пример, если используете класс:
Код:
<div class="title">В названии очень много текста и мне нужно его обрезать</div>
<div class="title">В втором названии тоже очень много текста и мне нужно его обрезать</div>
<div class="title">А в третьем названии очень много текста и мне нужно его обрезать</div>
<div class="title">Вот и другое название, тут очень много текста и мне нужно его обрезать</div>


<script>
function title() {
  var size = 40;
  // var elem = document.getElementsByClassName("title");
  var elem = document.querySelectorAll('.title');
  for (var i=0; i<elem.length; i++) {
     //elem[i] - i узел в коллекции NodeList
     var text = elem[i].innerHTML;
     if (text.length > size) {
       text = text.slice(0, 30);
      elem[i].innerHTML = text + '...';
     }
  }
}
title();
</script>

Последний раз редактировалось Serge_Bliznykov; 09.11.2015 в 15:34.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.11.2015, 16:28   #3
nikolokaputik80
Пользователь
 
Регистрация: 30.09.2015
Сообщений: 74
По умолчанию

Спасибо вам за оперативность ответа и разьяснения про ид.
nikolokaputik80 вне форума Ответить с цитированием
Старый 09.11.2015, 17:10   #4
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

http://jsfiddle.net/naiveMan/9r08g92r/ - так это делается
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 09.11.2015, 18:16   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Naive Посмотреть сообщение
http://jsfiddle.net/naiveMan/9r08g92r/ - так это делается


Код:
.cropped {
    width: 233px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
круто!
а я так не умею...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.11.2015, 08:32   #6
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
круто!
а я так не умею...
Теперь умеешь
Alar, верни репу!
Naive вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отсечение лишнего С++ Axmol Помощь студентам 3 14.10.2014 09:08
Слишком много лишнего флуда в проге) GUWK_Lammer Помощь студентам 2 10.02.2012 01:15
Три задачки без лишнего VaLenOK007 Паскаль, Turbo Pascal, PascalABC.NET 1 13.04.2011 09:58
Вывод лишнего символа. Консольное приложение I/O. Dagas Общие вопросы C/C++ 5 03.06.2010 11:31
Замена символов на латинские и ни чего лишнего Kib Общие вопросы Delphi 5 29.06.2009 12:00