js字符串只显示前3个逗号的内容,超出显示省略号

有字符串 str="定标模式,投标开始时间,投标结束时间,入围最高系数,入围最低系数,"
要显示为 定标模式,投标开始时间,投标结束时间,...
字符串为上述形式,项数不定,每一项字数也不定
超出三项(3个逗号)的显示省略号,最好鼠标划上时能展示全文,要怎么做?

阅读 2.3k
2 个回答
str="定标模式,投标开始时间,投标结束时间,入围最高系数,入围最低系数,"
newStr = str.split(',').slice(0, 3).join(',') + ',...'

vue的写法如下:

<div :title="str">
    newStr: {{newStr}}
</div>

jq的写法大概如下:

<div id="text" title=""></div>

$('#text').attr("title",str);
$('#text').html(newStr);

1、鼠标划上时能展示全文,原生标签的话,可以使用标签的title。
效果如下,点击查看动图:
image

2、鼠标划上时能展示全文,也可以写css样式做到:

<div class="text">
        定标模式,投标开始时间,投标结束时间,...
  <div class="tips">定标模式,投标开始时间,投标结束时间,入围最高系数,入围最低系数,</div>
</div>

css:

.tips {
 display: none;
}

.text:hover .tips {
 display: block;
}    

效果如下,点击查看动图:
image

如果你有用到组件库之类的,参考element的组件Tooltip 文字提示-常用于展示鼠标 hover 时的提示信息。

// => 定标模式,投标开始时间,投标结束时间,...
var data = str.replace(/((.+?,){3}).*/g, '$1...')
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题