使用选项卡名称而不是选项卡 ID,自动 select HTML 按钮上的选项卡单击

Auto select a tab on HTML button click using tab name instead of tab id

如何通过使用选项卡的标题而不是索引来自动 select 单击 HTML 按钮上的选项卡。 通过使用标签索引,它可以像这样完成:

$( ".selector" ).tabs( "option", "active", index_of_tab );

详情参考this

有什么方法可以从标签标题中获取标签 ID 以便我可以使用上面的代码吗?或者有什么方法可以使用选项卡名称自动 select 选项卡?

为此,您必须使用选项卡名称获取选项卡索引,如下所示,

var index = $('#tabs a[href="#your-tab"]').parent().index();

在上面的代码中,[#your-tab] 是 link 给你的标签,得到索引后你可以做,

$( ".selector" ).tabs( "option", "active", index );

希望这会有所帮助。

您可以获得包含该标题的标签 ID,之后您将从该 ID(使用子字符串)获取 ID,最后 select 通过索引获取标签(使用 ID 编号 -1)。

我创建了一个函数来执行这些操作fselectTabByTitle(title)

您可以在下面找到完整的示例:

$(document).ready(function() {
  $("#tabs").tabs();


  $(".btn").on("click", function() {
    selectTabByTitle($(this).data("title"))
  })

});

function selectTabByTitle(title) {
  var tab = $("#tabs ul>li a:contains(" + title + ")");
  if (tab[0]) {
    var tabid = tab[0].id;
    var tabIndex = tabid.substr(tabid.length - 1);
    $('#tabs').tabs('option', 'active', tabIndex - 1);
  }
}
#tabs {
  width: 95%;
  margin-left: auto;
  margin-right: auto;
  margin-top: 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<link href="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/themes/base/jquery-ui.css" rel="stylesheet" />

<div id="tabs">
  <ul>
    <li><a href="#tabs-1">Tab 1</a>
    </li>
    <li><a href="#tabs-2">Tab 2</a>
    </li>
    <li><a href="#tabs-3">Tab 3</a>
    </li>
  </ul>
  <div id="tabs-1">
    <p>Content for Tab 1</p>
  </div>
  <div id="tabs-2">
    <p>Content for Tab 2</p>
  </div>
  <div id="tabs-3">
    <p>Content for Tab 3</p>
  </div>
</div>
<div id="tabid"></div>
<button class="btn" data-title="Tab 1">
select Tab1
</button>
<button class="btn" data-title="Tab 2">
select Tab2
</button>
<button class="btn" data-title="Tab 3">
select Tab3
</button>