2017-11-17 28 views
0

我發現這個代碼很好用,但它是按字符計數的。因此這些單詞有時並不完整,當你點擊閱讀更多時,它會在單詞中創建一個空格。我還發現瞭如何用文字計數的功能,但我不知道如何合併兩者。下面是我的工作代碼和功能 感謝使用JavaScript顯示隱藏文本不是字符

======工作守則======

// Show more text option -campaing page 
 
    var showChar = 196; // How many characters are shown by default 
 
    var ellipsestext = "..."; 
 
    var moretext = "Read more"; 
 
    var lesstext = "Read less"; 
 
    
 
    //Cut content based on showChar length 
 
    if ($(".toggle-text").length) { 
 
     $(".toggle-text").each(function() { 
 

 
      var content = $(this).html(); 
 
     
 
      if(content.length > showChar) { 
 
     
 
       var contentExcert = content.substr(0, showChar); 
 
       var contentRest = content.substr(showChar, content.length - showChar); 
 
       var html = contentExcert + '<span class="toggle-text-ellipses">' + ellipsestext + ' </span> <span class="toggle-text-content"><span>' + contentRest + '</span><a href="javascript:;" class="btn btn--primary btn--dark toggle-text-link">' + moretext + '</a></span>'; 
 
     
 
       $(this).html(html); 
 
      } 
 
     }); 
 
    } 
 
    
 
    //Toggle content when click on read more link 
 
    $(".toggle-text-link").click(function(){ 
 
     if($(this).hasClass("less")) { 
 
      $(this).removeClass("less"); 
 
      $(this).html(moretext); 
 
     } else { 
 
      $(this).addClass("less"); 
 
      $(this).html(lesstext); 
 
     } 
 
     $(this).parent().prev().toggle(); 
 
     $(this).prev().toggle(); 
 
     return false; 
 
    });

======功能代碼======

function limitWords(element, quantity){ 
 

 
    var text = $(element).text(); 
 

 
    var words = text.split(" "); 
 

 
    quantity = Math.min(quantity, words.length); 
 

 
    $(element).text(words.slice(0,quantity) + "..."); 
 

 
}

+0

的JavaScript。 Javascript!= Java。 – Taplar

+0

你不知道如何合併,我們不知道你想要做什麼。告訴我們你最終想做什麼。給我們一些例子。 –

回答

0

這裏亞去:

var charCount = 0; 
var contentExcert = content.split(" ").map((n)=>{ 
    charCount += n.length + 1; 
    return charCount - 1 <= showChar ? n : false; 
}).filter(n=>n).join(" "); 
charCount = 0; 
var contentRest = content.split(" ").map((n)=>{ 
    charCount += n.length + 1; 
    return charCount - 1 >= showChar ? n : false; 
}).filter(n=>n).join(" "); 
+0

這就是我需要的!我發佈了合併代碼。如果有什麼東西看起來不對,請告訴我 – Bill

+0

您應該修改您的問題,如......「如何分割一個字符串,使它不會包含超過特定數量的字符而不會導致部分字詞?」 – JayB

0

// Show more text option -campaing page 
 
    var showChar = 196; // How many characters are shown by default 
 
    var ellipsestext = "..."; 
 
    var moretext = "Read more"; 
 
    var lesstext = "Read less"; 
 
    
 
    //Cut content based on showChar length 
 
    if ($(".toggle-text").length) { 
 
     $(".toggle-text").each(function() { 
 

 
      var content = $(this).html(); 
 
     
 
      if(content.length > showChar) { 
 
     
 
\t \t \t \t var charCount = 0; 
 
\t \t \t \t var contentExcert = content.split(" ").map((n)=>{ 
 
\t \t \t \t \t charCount += n.length + 1; 
 
\t \t \t \t \t return charCount - 1 <= showChar ? n : false; 
 
\t \t \t \t \t }).filter(n=>n).join(" "); 
 
\t \t \t \t \t charCount = 0; 
 
\t \t \t \t var contentRest = content.split(" ").map((n)=>{ 
 
\t \t \t \t \t charCount += n.length + 1; 
 
\t \t \t \t \t return charCount - 1 >= showChar ? n : false; 
 
\t \t \t \t \t }).filter(n=>n).join(" "); 
 
       var html = contentExcert + '<span class="toggle-text-ellipses">' + ellipsestext + ' </span> <span class="toggle-text-content"><span>' + contentRest + '</span><a href="javascript:;" class="btn btn--primary btn--dark toggle-text-link">' + moretext + '</a></span>'; 
 
     
 
       $(this).html(html); 
 
      } 
 
     }); 
 
    } 
 
    
 
    //Toggle content when click on read more link 
 
    $(".toggle-text-link").click(function(){ 
 
     if($(this).hasClass("less")) { 
 
      $(this).removeClass("less"); 
 
      $(this).html(moretext); 
 
     } else { 
 
      $(this).addClass("less"); 
 
      $(this).html(lesstext); 
 
     } 
 
     $(this).parent().prev().toggle(); 
 
     $(this).prev().toggle(); 
 
     return false; 
 
    });