show more/Less text with just HTML and JavaScript

前端 未结 8 2106
心在旅途
心在旅途 2020-12-10 04:45

I am needing to create a show more/less text function, but with just JavaScript and HTML.. I can\'t use any additional libraries such as jQuery and it can\'t be done with CS

相关标签:
8条回答
  • 2020-12-10 05:18
     <script type="text/javascript">
         function showml(divId,inhtmText) 
         {  
            var x = document.getElementById(divId).style.display; 
    
            if(x=="block")
            {
              document.getElementById(divId).style.display = "none";
              document.getElementById(inhtmText).innerHTML="Show More...";
            }
           if(x=="none")
           {
              document.getElementById(divId).style.display = "block";
              document.getElementById(inhtmText).innerHTML="Show Less";
            }
         }
    </script>
    
     <p id="show_more1" onclick="showml('content1','show_more1')" onmouseover="this.style.cursor='pointer'">Show More...</p>
    
     <div id="content1" style="display: none; padding: 16px 20px 4px; margin-bottom: 15px; background-color: rgb(239, 239, 239);">
     </div>
    

    if more div use like this change only 1 to 2

    <p id="show_more2" onclick="showml('content2','show_more2')" onmouseover="this.style.cursor='pointer'">Show More...</p>
    
     <div id="content2" style="display: none; padding: 16px 20px 4px; margin-bottom: 15px; background-color: rgb(239, 239, 239);">
     </div>
    

    demo jsfiddle

    0 讨论(0)
  • 2020-12-10 05:21

    Hope this Code you are looking for HTML:

                <div class="showmore">
                    <div class="shorten_txt">
                        <h4> #@item.Title</h4>
                        <p>Your Text Your Text Your Text Your Text Your Text Your Text Your Text Your Text Your Text Your Text Your Text Your Text Your Text Your Text Your Text Your Text Your Text </p>
                    </div>
                </div>
    

    SCRIPT:

        var showChar = 100;
        var ellipsestext = "[...]";
        $('.showmore').each(function () {
            $(this).find('.shorten_txt p').addClass('more_p').hide();
            $(this).find('.shorten_txt p:first').removeClass('more_p').show();
            $(this).find('.shorten_txt ul').addClass('more_p').hide();
            //you can do this above with every other element
            var teaser = $(this).find('.shorten_txt p:first').html();
            var con_length = parseInt(teaser.length);
            var c = teaser.substr(0, showChar);
            var h = teaser.substr(showChar, con_length - showChar);
            var html = '<span class="teaser_txt">' + c + '<span class="moreelipses">' + ellipsestext +
            '</span></span><span class="morecontent_txt">' + h
            + '</span>';
            if (con_length > showChar) {
                $(this).find(".shorten_txt p:first").html(html);
                $(this).find(".shorten_txt p:first span.morecontent_txt").toggle();
            }
        });
        $(".showmore").click(function () {
            if ($(this).hasClass("less")) {
                $(this).removeClass("less");
            } else {
                $(this).addClass("less");
            }
            $(this).find('.shorten_txt p:first span.moreelipses').toggle();
            $(this).find('.shorten_txt p:first span.morecontent_txt').toggle();
            $(this).find('.shorten_txt .more_p').toggle();
            return false;
        });
    
    0 讨论(0)
提交回复
热议问题