我正在尝试添加三个点的字符限制(...) 现在,所有li标签上都会出现点。它应该只有在字符限制大于20时才会出现。我试图在不同的帖子上找到解决方案,但由于jQuery知识的湖泊,我无法应用条件。请帮助我...
<ul>
<li>Lorem ipsum</li>
<li>Aliquam porttitor iaculis velit eget elementum</li>
</ul>
$(function() {
$('li').each(function() {
var $this = $(this);
$this.text( $this.text().slice(0, 20) ).append("...");
});
});
答案 0 :(得分:2)
首先查看长度
$('li').each(function() {
var $this = $(this);
if ( $this.text().length > 20 ) {
$this.text( $this.text().slice(0, 20) + "..." );
}
});
注意$this.text()
返回一个字符串,你连接它,你不能追加它。
您还可以使用text
$('li').text(function(_, txt) {
return txt.length > 20 ? txt.slice(20) + '...' : txt;
});
答案 1 :(得分:0)
只需使用$this.text($this.text().slice(0, 20) ) + "...")
答案 2 :(得分:0)
$('li').each(function() {
var $this = $(this);
if ($this.text().length >= 20) {
$this.text( $this.text().slice(0, 20) ).append("...");
}
});
如果这样,您将按长度过滤li。