Javascript 在特定行数后插入省略号

Javascript 在特定行数后插入省略号,javascript,html,css,Javascript,Html,Css,我试图只显示前5行文本。问题是文本的设置方式是div中有多个标记,例如 <div class="myText"> <p>some text</p> <p>some text</p> <p>some text</p> <p>some text</p> <p>some text</p> <p>some text</p>

我试图只显示前5行文本。问题是文本的设置方式是div中有多个
标记,例如

<div class="myText">
  <p>some text</p>
  <p>some text</p>
  <p>some text</p>
  <p>some text</p>
  <p>some text</p>
  <p>some text</p>
  <p>some text</p>
</div>

一些文本

一些文本

一些文本

一些文本

一些文本

一些文本

一些文本

我在这个网站上看过很多答案,比如,和,在其他地方,比如,和,但是没有一个适合这种情况,在这种情况下,我希望最后一行的最后一个单词后面有省略号,即使它没有到达最后一行,并且有多个
标记


我正在使用带Angular的JavaScript。

试试jQuery点插件。网址:

我已在中制作了一个代码示例

代码如下:

$(文档).ready(函数(){
$(“.myText”).dotdot();
});
p{
保证金:0;
填充:0;
字体:12px/15px Verdana,日内瓦,塔荷马,Arial,Helvetica,无衬线;
}
.myText{
高度:75px;/*这需要是5行文本的高度。这里是15px(一行的行高)*5=75px*/
}

一些文本

一些文本

一些文本

一些文本

一些文本

一些文本

一些文本


是的,您可以使用一些插件,但这种逻辑并不难自己编写。基本概念是不断减少文本量,直到合适为止。这听起来很昂贵,但实际上效果很好,必要时可以进行优化

// Populate an element with text so as to fit into height
function truncate(elt, content, height) {

  function getHeight(elt) { return elt.getBoundingClientRect().height; }
  function shorten(str)   { return str.slice(0, -1); }

  elt.style.height = "auto";
  elt.textContent = content;

  // Shorten the string until it fits vertically.
  while (getHeight(elt) > height && content) {
    elt.textContent = (content = shorten(content)) + '...';
  }

}
要使用此选项,请执行以下操作:

truncate(div, "Some very long text to be truncated", 200)

要与HTML内容一起使用,请根据需要进行调整/扩展。

我更喜欢这个答案,因为如果不需要,我宁愿不使用插件,并且可以根据我的具体情况进行优化,以降低成本。
// Populate an element with text so as to fit into height
function truncate(elt, content, height) {

  function getHeight(elt) { return elt.getBoundingClientRect().height; }
  function shorten(str)   { return str.slice(0, -1); }

  elt.style.height = "auto";
  elt.textContent = content;

  // Shorten the string until it fits vertically.
  while (getHeight(elt) > height && content) {
    elt.textContent = (content = shorten(content)) + '...';
  }

}