Помогите с обрезкой определенного количества строк на jQuery
Вложений: 1
Здравствуйте,
помогите, пожалуйста, реализовать такую вещь: Нужно чтобы скрипт подсчитал количество строк списка (ul li) и после 5 строки обрезался. Точный пример высылаю в приложении. Заранее благодарен |
А ты уверен что это нужно делать на клиенте а не на сервере?
|
Вы просите готовый скрипт с нуля.
Это работа, и за нее обычно платят деньги. Для таких сообщений предназначен раздел форума "Работа". Если вы все же хотите, чтобы вам помогли - приложите какие-то усилия сами и задавайте вопросы по ходу дела. |
Цитата:
На данный момент у меня есть только такой скрипт 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"> читать полностью →</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() ); }); он все хорошо работает, но нужно чтобы он не просто обрезал в тупую текст, а чтобы просчитывал строки и обрезал конкретно строки. |
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"> читать полностью →</span>').appendTo($(this)) li.wrapAll("<div class='hide'></div>"); } }); $(".testimonials_readmore").click(function(){ $(this).prev().slideToggle()}); </script> </body> </html> |
Зачем так издеваться то?
![]() |
Цитата:
|
<!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: "Читать полностью →" })) ; }) ; $(".testimonials_readmore").one("click", function() { var $this = $(this) ; $this.prevUntil("li:visible").removeClass("hide") ; $this.remove() ; }) ; </script> </body> </html> |
Цитата:
|
danik.js,
body сложно запихать в ul, если вы знаите способ хотелось бы взглянуть. |
Часовой пояс GMT +3, время: 06:06. |