JQuery Show-Hide на основе количества символов - PullRequest
0 голосов
/ 14 июля 2011

Я хочу скрыть текст в div после определенного количества символов и ограничить его словом. Я нашел это решение: jquery ограничить текст по длине , но у него нет способа закрыть div обратно или разбить слово.

Это то, что у меня так далеко ... Это позволяет мне открывать и закрывать div. Но я хочу, чтобы он был другим, потому что я хочу, чтобы он проверял текст, пока он не достигнет определенного количества символов. Затем он перенес бы DIV из этой позиции в конец текста, который затем можно было бы скрыть с помощью метода hide (). Я должен добавить это к тысячам узлов. Поэтому я не могу просмотреть каждый из них и добавить диапазон показа / скрытия, который есть в этом примере

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
    function showStuff(id) {
        document.getElementById(id).style.display = 'block';
    }
    function hideStuff(id) {
        document.getElementById(id).style.display = 'none';
    }
</script>

<style type="text/css">
    span.read-more { cursor: pointer; color: red; }
    span.more { display: none;  }
</style>
</head>
<body>

<p><a href="#" onclick="showStuff('answer1'); return false;">What price are your apples?</a><br>
<span id="answer1" style="display: none;">Our apples are 30 pence each. If you buy 10 or more we can sell them at a discounted bulk rate of 25 pence each.
<a href="#" onclick="hideStuff('answer1'); return false;">Close</a><br>
</span></p>

</body>
</html>

Я нашел это в ответе на другой вопрос, но я не знаю, как объединить два набора функций:

<script type="text/javascript" charset="utf-8">
        $(function(){
                var $elem = $('p');             // The element or elements with the text to hide
                var $limit = 10;                // The number of characters to show
                var $str = $elem.html();        // Getting the text
                var $strtemp = $str.substr(0,$limit);   // Get the visible part of the string
                $str = $strtemp + '<span class="hide">' + $str.substr($limit,$str.length) + '</span>';  // Recompose the string with the span tag wrapped around the hidden part of it
                $elem.html($str);               // Write the string to the DOM 
        })
    </script>

1 Ответ

2 голосов
/ 14 июля 2011

Вы можете легко сделать что-то вроде этого:

if ($(".yourelement").html().length > 50) {  // if count is greater than 50
   $(".yourelement").slideUp("slow");
}
...