Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Помогите с обрезкой определенного количества строк на jQuery (https://javascript.ru/forum/jquery/38966-pomogite-s-obrezkojj-opredelennogo-kolichestva-strok-na-jquery.html)

joylord 10.06.2013 23:00

Помогите с обрезкой определенного количества строк на jQuery
 
Вложений: 1
Здравствуйте,
помогите, пожалуйста, реализовать такую вещь:
Нужно чтобы скрипт подсчитал количество строк списка (ul li) и после 5 строки обрезался.
Точный пример высылаю в приложении.
Заранее благодарен

danik.js 10.06.2013 23:19

А ты уверен что это нужно делать на клиенте а не на сервере?

Hekumok 10.06.2013 23:21

Вы просите готовый скрипт с нуля.

Это работа, и за нее обычно платят деньги.
Для таких сообщений предназначен раздел форума "Работа".

Если вы все же хотите, чтобы вам помогли - приложите какие-то усилия сами и задавайте вопросы по ходу дела.

joylord 10.06.2013 23:32

Цитата:

Сообщение от Hekumok (Сообщение 255620)
Вы просите готовый скрипт с нуля.

Это работа, и за нее обычно платят деньги.
Для таких сообщений предназначен раздел форума "Работа".

Если вы все же хотите, чтобы вам помогли - приложите какие-то усилия сами и задавайте вопросы по ходу дела.

Спасибо за информацию, буду исправляться...

На данный момент у меня есть только такой скрипт
jQuery("#secondary div.testimonials-text").each(function(){
	var review_full = jQuery(this).html();
	var review = review_full;

	if( review.length > 150 )
	{
		review = review.substring(0, 150);
		jQuery(this).html( review + '<span class="testimonials_readmore"> читать полностью &rarr;</span>' );
	}
	jQuery(this).append('<div class="full_text" style="display: none;">' + review_full + '</div>');
});

jQuery(".testimonials_readmore").click(function(){
	jQuery(this).parent().html( jQuery(this).parent().find(".full_text").html() );
});

он все хорошо работает, но нужно чтобы он не просто обрезал в тупую текст, а чтобы просчитывал строки и обрезал конкретно строки.

рони 11.06.2013 00:52

joylord,
:write:
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
 .hide{
   display:  none;
 }
 div {
   float:  left;
 }
  div div{
   float:   none;
 }
  </style>
  <script src="https://code.jquery.com/jquery-1.10.0.min.js"></script>
</head>
<body>
<div>
<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
  <li>6</li>
  <li>7</li>
  <li>8</li>
  <li>9</li>
  <li>10</li>
</ul>
</div>
<div>
<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
</ul>
</div>
<div>
<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
  <li>6</li>
  <li>7</li>
  <li>8</li>
  <li>9</li>
  <li>10</li>
</ul>
</div>

<script>
$("div ul").each(function(){
    var li = $("li:gt(4)",this);
    if (li.size()){
    $('<span class="testimonials_readmore"> читать полностью &rarr;</span>').appendTo($(this))
    li.wrapAll("<div class='hide'></div>");
    }

});
$(".testimonials_readmore").click(function(){
	$(this).prev().slideToggle()});
</script>
</body>
</html>

danik.js 11.06.2013 01:38

Зачем так издеваться то?

рони 11.06.2013 02:18

Цитата:

Сообщение от danik.js
Зачем так издеваться то?

непонял.

Hekumok 11.06.2013 02:21

<!DOCTYPE HTML>
<html>
<head>
<script src="http://code.jquery.com/jquery.min.js"></script>
<style>
li.hide {
  display: none ;
}
span.testimonials_readmore {
  color: red ;
}
</style>
</head>
<body>
<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
  <li>6</li>
  <li>7</li>
  <li>8</li>
  <li>9</li>
  <li>10</li>
</ul>
<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
</ul>
<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
  <li>6</li>
  <li>7</li>
  <li>8</li>
  <li>9</li>
  <li>10</li>
</ul>
<script>
$("ul").each(function() {
  var $this = $(this),
  li = $("li:gt(4)", this) ;
  if(!li.length)
    return ;
  li.addClass("hide") ;
  $this.append($("<span/>", {
    class: "testimonials_readmore",
    html: "Читать полностью &rarr;"
  })) ;
}) ;
$(".testimonials_readmore").one("click", function() {
  var $this = $(this) ;
  $this.prevUntil("li:visible").removeClass("hide") ;
  $this.remove() ;
}) ;
</script>
</body>
</html>

danik.js 11.06.2013 02:35

Цитата:

Сообщение от рони
непонял.

То есть ты реально думаешь что сделал все правильно? Что в ul можно пихать что угодно? Хоть таблицу? А завтра body запихнешь, правда?

рони 11.06.2013 02:46

danik.js,
body сложно запихать в ul, если вы знаите способ хотелось бы взглянуть.


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