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

如何在HTML下拉菜单中显示data-tz-abbrev时区缩写而非全称?

没问题!要把Bootstrap下拉菜单里的选项从America/New_York这类时区全称改成显示data-tz-abbrev里的缩写,其实只需要调整HTML内容和微调jQuery同步逻辑就行,我给你一步步说明:

1. 修改下拉选项的显示文本

原来你的HTML结构大概是这样的:

<div class="dropdown">
  <button class="btn btn-secondary dropdown-toggle" id="timezoneDropdown" data-bs-toggle="dropdown" aria-expanded="false">
    选择时区
  </button>
  <ul class="dropdown-menu" aria-labelledby="timezoneDropdown">
    <li><a class="dropdown-item" href="#" data-tz-abbrev="est">America/New_York</a></li>
    <li><a class="dropdown-item" href="#" data-tz-abbrev="cst">America/Chicago</a></li>
    <!-- 更多时区选项 -->
  </ul>
</div>

现在只需要把每个<a>标签里的时区全称文本,替换成对应的data-tz-abbrev值就行(建议大写更规范):

<li><a class="dropdown-item" href="#" data-tz-abbrev="est">EST</a></li>
<li><a class="dropdown-item" href="#" data-tz-abbrev="cst">CST</a></li>

如果选项特别多不想手动改,可以用jQuery批量初始化(页面加载时执行):

$(document).ready(function() {
  $('.dropdown-item').each(function() {
    var abbrev = $(this).data('tz-abbrev').toUpperCase();
    $(this).text(abbrev);
  });
});
2. 调整选中后的同步逻辑(更稳妥的写法)

原来的jQuery代码应该是取选项的文本(当时区全称)同步到按钮,现在如果直接取选项文本也能工作,但更推荐从data-tz-abbrev属性取值,避免后续文本有空格或样式干扰:

$('.dropdown-item').on('click', function(e) {
  e.preventDefault(); // 阻止默认跳转行为
  var selectedAbbrev = $(this).data('tz-abbrev').toUpperCase();
  $('#timezoneDropdown').text(selectedAbbrev);
});

要是你之后还需要用到时区全称(比如后端接口需要),可以给每个选项加个data-tz-full属性存全称,HTML改成:

<li><a class="dropdown-item" href="#" data-tz-abbrev="est" data-tz-full="America/New_York">EST</a></li>

这样既显示缩写,又能随时拿到全称用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:36:45