You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于jQuery根据自定义链接数量动态限制链接文本长度

完美适配不同数量自定义链接的截断方案

嘿,不用写一堆if-else,咱们用动态计算的方式就能搞定这个需求!

核心思路

咱们的目标是总共分配约20个字符给自定义链接,那直接用总字符数除以自定义链接的数量,就能得到每个链接能显示的最大字符数了——不管有3个、4个还是5个自定义链接,这个逻辑都通用,完全不用搞一堆条件判断。

修改后的代码实现

首先是关键的jQuery代码,逻辑很清晰:

// 先统计页面上自定义链接的总数
const customLinkCount = $(".links .cstlnk").length;
// 计算每个链接可分配的最大字符数(总20字符均分,取整避免小数)
const maxChars = Math.floor(20 / customLinkCount);

// 给每个自定义链接应用截断逻辑
$(".links .cstlnk").text(function(i, currentText) {
  return currentText.substring(0, maxChars);
});

下面是完整的可运行示例,包含HTML、CSS和JS:

<style>
.infotxt {width:90%; padding:1em; background:#eee;}
.infotxt.links { 
  list-style:none; 
  display:flex; 
  flex-direction:row; 
  justify-content:space-between; 
}

/* 移动端额外适配,防止极端情况溢出 */
@media screen and (max-device-width:767px) {
  .infotxt.links {
    flex-wrap: wrap;
  }
}
</style>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="infotxt links">
<li id="ask">ask</li>
<li id="sub">submit</li>
<li class="cstlnk"><a href="">1longstring1thatisreallylong</a></li>
<li class="cstlnk"><a href="">2longstring2thatisreallylong</a></li>
<li class="cstlnk"><a href="">3longstring3thatisreallylong</a></li>
<!-- 可以注释/取消注释下面的链接来测试不同数量的效果 -->
<!-- <li class="cstlnk"><a href="">4longstring4thatisreallylong</a></li> -->
<!-- <li class="cstlnk"><a href="">5longstring5thatisreallylong</a></li> -->
<li><a href="">dash</a></li>
<li><a href="">thm</a></li>
</ul>
<script>
const customLinkCount = $(".links .cstlnk").length;
const maxChars = Math.floor(20 / customLinkCount);

$(".links .cstlnk").text(function(i, currentText) {
  return currentText.substring(0, maxChars);
});
</script>

效果验证

  • 当有5个自定义链接时,20÷5=4,每个链接截断到4字符,和你原来的需求一致;
  • 如果只有3个自定义链接,20÷3≈6,每个链接最多显示6字符;
  • 要是只有2个,每个就能显示10字符,完美利用分配的总宽度,布局不会空落落的。

另外加了移动端的flex-wrap样式,防止极端情况下字符还是溢出的问题,更稳妥~

内容的提问来源于stack exchange,提问作者Nintendraw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 12:47:35