简体   繁体   English

如何使用 JavaScript 将文本字符串截断为以省略号结尾的多个字符以用于段落标签数组

[英]How do I truncate a string of text to a number of characters ending with ellipsis for an array of paragraph tags using JavaScript

My example I've tried, gives me [object NodeList].我尝试过的示例给了我[object NodeList]。 So what I'm trying to do, is truncate paragraphs of text, so that I can add a show more button to display the rest of the text.所以我想做的是截断文本段落,这样我就可以添加一个显示更多按钮来显示文本的 rest。

  var testimonialFeedback = document.querySelectorAll('.expanded-text'); 

  var testimonialArray = [...testimonialFeedback];

  
  function ellipsify () {
          if (testimonialFeedback.length > 100) {
              return (testimonialFeedback.substring(0, 100) + "...");
          }
          else {
          return testimonialFeedback;
      }
  }

  testimonialArray.forEach(e => {
    e.textContent = ellipsify(testimonialFeedback.textContent);
  });

You have forgotten the function param..您忘记了 function 参数..

 const testimonialFeedback = document.querySelectorAll('.expanded-text'); const testimonialArray = [...testimonialFeedback]; const testimonialFeedbackMaxLength = 100; function ellipsify (testimonialFeedback) { if (testimonialFeedback.length > testimonialFeedbackMaxLength) { testimonialFeedback = testimonialFeedback.substring(0, testimonialFeedbackMaxLength) + "..."; } return testimonialFeedback; } testimonialArray.forEach(e => { e.textContent = ellipsify(e.textContent); });
 .expanded-text { border: 1px solid grey; }
 <div class="expanded-text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</div> <div class="expanded-text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</div> <div class="expanded-text">Lorem ipsum dolor sit amet</div>

PS it is easier to do with text-overflow css. PS使用文本溢出css更容易。

 .expanded-text { width: 250px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; border: 1px solid grey; }
 <div class="expanded-text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</div> <div class="expanded-text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</div> <div class="expanded-text">Lorem ipsum dolor sit amet</div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM