(这个答案与 JQuery UI 1.12 和之前的几个版本有关。)
这取决于选项卡的含义...您单击以选择选项卡和由于单击而显示的面板。您单击的内容是一个列表项<li>
,其中包含一个带有指向面板 ID 的属性的锚<a>
标记(它前面带有一个“#”)。href
面板 id 和 href 值由您设置(不是 JQuery)。默认情况下,列表项没有 id,但锚元素确实......它是由 JQuery 生成的,类似于“ui-id-88”。要获取选项卡 ID、锚点 ID 或面板 ID,您可以使用以下命令:
// if you have nested tabs this might not work... in such case, give
// your parent tab and panel a unique class and use it in selector
var $tabs = $("#tabs");
var tabIndex = $tabs.tabs("option", "active");
var $tab = $tabs.find("li[role=tab]").eq(tabIndex);
var tabId = $tab.attr("id"); // undefined unless set by user
var anchorId = $tab.attr("aria-labelledby"); // or $tabs.find("ul li a.ui-tabs-anchor").eq(tabIndex).attr("id");
var panelId = $tab.attr("aria-controls"); //or $tabs.find(".ui-tabs-panel").eq(tabIndex).attr("id");
// note: panelId will also be in href of anchor with prepended # sign
alert("tabId=" + tabId + ", anchorId=" + anchorId + ", panelId=" + panelId);