最近项目中遇到了一个关于超出一定字数用省略号显示的问题,其实这种形式很常见,公司简介、产品介绍啊里面都可能会用到,一行文字显示省略号很容易,多行就得想点办法了。在经过查阅、整理之后,我也算是实现了这个效果。

页面中原来的表现可能是这样的。

而我想把它变成这样

这里面发生了什么。。。

我赶紧来解释解释

我利用js获取了目标元素的文本长度,然后通过传参,给它一个需要对比的字数,如果内容比参数大,就截取从0到参数位置部分,显示在页面中。

像我这样记忆力不足的人还是需要烂笔头的帮助的,我会一步步的把步骤写下来,尽可能帮助自己理解记忆并且更希望帮助到看到这篇文章的人。

function wordlimit(cname,wordlength){//1.首先,定义函数,其中两个参数,参数一是目标元素,也就是需要显示省略号的那个元素;参数二是需要限制的字数。

var cname=document.getElementsByClassName(cname);//2.定义变量cname,即目标元素

  for(var i=0;i<cname.length;i++){//3.这里写了个循环,因为目标元素不止一个,之前找到一个通过获取id来截取字段实现效果的,但是如果目标元素有多个,id每个又不能相同,就显得麻烦了

    var nowLength=cname[i].innerHTML.length;//4.定义变量nowLength,里面存储的是每一个目标元素所包含的字数。

    if(nowLength>wordLength){//这里做一些判断,如果现在的每个目标元素里面的字数多于我们需要限制的字数

      cname[i].innerHTML=cname[i].substr(0,wordlength)+' . . . ';//每个目标元素的内容就会被改变为当前内容的字符长度从0开始然后一直截取到需要限制的字数位置。

    }

  } 

}

最后一步,调用函数。

wordlimit(core,10)

意思就是class为core的目标元素只显示10个字符,多余部分用省略号代替。

这样就写完了...虽然我也觉得比较简单,但毕竟是自己琢磨出来的成果,如果哪里写的不全面,欢迎来指正。

js实现多行文本超出一定字数显示省略号功能的更多相关文章

  1. 多行溢出隐藏显示省略号功能的JS实现

    在页面重构中,经常需要将过多的内容隐藏而显示部分.在单行文本中实现非常简单,但是在多行文本中,则需要根据实际选择不同的方式. 用CSS实现多行溢出隐藏的代码非常简单,但是兼容性也相对较低. displ ...

  2. CSS控制文本超出指定宽度显示省略号和文本不换行

    一般的文字截断(适用于内联与块): .text-overflow { display:block;/*内联对象需加 */ width:31em;/* 何问起 hovertree.com */ word ...

  3. js 控制超出字数显示省略号

    //多余显示省略号 function wordlimit(cname, wordlength) { var cname = document.getElementsByClassName(cname) ...

  4. 设置Div多行文本超出时,以省略号代替

    这个文章不错 http://www.css88.com/archives/5206 css中有一个属性: text-overflow,可以设置文本超出指定长度后的文本截取样式. 下面是从 w3shco ...

  5. 【css】 文本超出2行显示省略号

    首先,要知道css的三条属性. overflow:hidden; //超出的文本隐藏 text-overflow:ellipsis; //溢出用省略号显示 white-space:nowrap; // ...

  6. 用css实现文本不换行切超出限制时显示省略号(小tips)

    div{ max-width: 500px; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;/*文本不换行*/ } 如上 ...

  7. css多行超出时,超出高度,显示省略号

    .layout display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;

  8. flutter实现文字超出最大宽度显示省略号

    Container( width: 60, child: Text( '...', maxLines: 1, overflow: TextOverflow.ellipsis, ), ) 给Text外层 ...

  9. css实现单行、多行文本超出显示省略号

    前言:项目中我们经常遇到这种需求,需要对单行.多行文本超出显示为省略号.这篇文章主要总结了小编解决此问题的方法,有不足之处欢迎大家指正. 单行文本省略 .ellipsis-line { border: ...

随机推荐

  1. 企业架构研究总结(33)——TOGAF架构内容框架之架构制品(上)

    4. 架构制品(Architectural Artifacts) 架构制品是针对某个系统或解决方案的模型描述,与架构交付物和构建块相比,架构制品既不是架构开发方法过程各阶段的合约性产物,亦不是企业中客 ...

  2. videojs设置播放点

    videojs提供了currentTime的函数可以设置当前的播放时间,但是在实际运用当中出现了问题 var vid1 = videojs('vid1'); vid1.src('http://vide ...

  3. Machine Learning/Random Projection

    这次突然打算写点dimension reduction的东西, 虽然可以从PCA, manifold learning之类的东西开始, 但很难用那些东西说出好玩的东西. 这次选择的是一个不太出名但很有 ...

  4. 调试PostSharp DEMO 遇到的问题

    我今天在WIN7下的VS2010.VS2012调试PostSharp例子程序,下载的是PostSharp1.5版本,但是就是不进断点啊,我想了想这是怎么回事啊,于是我更换了2.0的再进行调试具然好使了 ...

  5. android 视图设置多个setTag数据

    1)在string.xml 文件中添加 <item tyoe="id" name = "tag_first" /> <item tyoe=&q ...

  6. 通过qsort(void * lineptr[], int left, int rifht, int (*comp)(void *, void *))解读指针函数和void指针

    原函数是<The C programint  language >5.11文本行排序的程序,如下: void qsort(void *v[], int left, int right, i ...

  7. IP、子网的详述 ——IP分类、网关地址,子网掩码、子网作用(转)

    IP地址    在Internet上连接的所有计算机,从大型机到微型计算机都是以独立的身份出现,我们称它为主机.为了实现各主机间的通信,每台主机都必须有一个唯一的网络地址.就好像每一个住宅都有唯一的门 ...

  8. 1.JSP入门

    一.JSP基础 1.JSP概述 JSP(Java Server Pages)是JavaWeb服务器端的动态资源.它与html页面的作用是相同的,显示数据和获取数据. JSP = html + Jsp脚 ...

  9. [ios2] iOS常用控件尺寸大集合 【转】

    元素控件 尺寸(PTS) Window(含状态栏) 320 x 480 Status Bar的高度 20 Navigation Bar的高度 44 含Prompt的Navigation Bar的高度 ...

  10. MVC源码解析 - 配置注册 / 动态注册 HttpModule

    本来这一篇, 是要继续 Pipeline 的, 但是在 Pipeline之前, 我看到了InitModules()方法, 所以决定, 在中间穿插一篇进来. 这一篇来讲一下 IHttpModule 的加 ...