JavaScript 和 Jquery If 语句追加

标签 javascript jquery if-statement

好的,我有一个列表,列表中的一些文本太长,所以我想使用 JavaScript 和 Jquery 来 trim 文本,如果超过 30 个字符,则将 ... 添加到测试的末尾。

<ul>
    <li><a href="#">Long List item Long List item Long List item </a></li>
    <li><a href="#">Smaller List item</a></li>
    <li><a href="#">item</a></li>
</ul>

目前我的 Jquery:

$(function(){
    $("ul li a").html(function(){
        return $(this).html().substring(0,30);
    });
    $('.box ul li a').append(' ...');
});

这行得通,但我可能想添加一个 IF 语句,以便仅在标签内的文本长度超过 30 个字符时才添加 ...。我该怎么做?

谢谢

最佳答案

在创建子字符串的函数中测试长度,并在其中添加省略号。

$(function(){
    $("ul li a").html(function(i, html){
        return html.length > 30 ? html.substr(0, 30) + " &hellip;" : html;
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li><a href="#">Long List item Long List item Long List item </a>
  </li>
  <li><a href="#">Smaller List item</a>
  </li>
  <li><a href="#">item</a>
  </li>
</ul>

顺便说一句,元素的当前 HTML 作为参数传递给回调函数,因此您不需要在其中使用 $(this).html()

关于JavaScript 和 Jquery If 语句追加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29974385/

相关文章:

javascript - 检测变量是否包含字母或数字javascript

与 scanf() 或 if() 混淆

python - If Else 语句、AND OR 逻辑运算和文本文件(使用 Python)

javascript - 如何检查变量或属性在 JavaScript 中是否可读?

javascript - Js setInterval 对于不同的段落不起作用

javascript - 检测 'undefined' 被覆盖位置的可能方法?

javascript - jqGrid 在 IE7 中加载子网格时出现问题

javascript - Ajax 提交后的 Jquery 函数不起作用

javascript - Node.js 未定义 VS 空字符串内存使用

javascript - 如何检查 *chunk.js 中的不同源大小