选中的标签ID?

时间:2011-03-14 14:39:02

标签: jquery jquery-ui jquery-ui-tabs

我有以下脚本获取所选标签的索引:

http://jsfiddle.net/oshirowanen/eWncA/

如果li有id,是否有可能获得id。如果从其他地方更容易获得它,那也可以,即相关的div标签,或其他地方。

5 个答案:

答案 0 :(得分:8)

jQuery UI只是为选定的li添加了一个类。您可以将所选类的li拉出来,如下所示:

   var id = $("li.tab.ui-tabs-selected").attr("id");

如果你想获得一个未经选择的标签,你可以这样做:

var id = $("li.tab:not(.ui-tabs-selected)").first().attr("id");

工作示例:

http://jsfiddle.net/UBs9m/2/

答案 1 :(得分:4)

var id = $("li.tab:eq("+selected+")").attr('id');

答案 2 :(得分:3)

如果你能够简单地使用Tabs控件的select事件处理程序,这可以正常工作:

$('#tabs').tabs({
    select: function( evt, ui ) {
        console.log( $(ui.panel).attr( 'id' ) );
    }
});

此外,对于不同的ui对象属性,此处为a handy reference

答案 3 :(得分:1)

如果您使用的是jquery标签(新版本):

<div id="tabs">
        <ul>
            <li data-value="tab1"><a href="#tab1">Name of tab1</a></li>
            <li data-value="tab2"><a href="#tab2">Name of tab2</a></li>
        </ul>
        <div id="tab1">
        </div>
        <div id="tab2">
        </div>
 </div>       

 //get id in init
 $(function () {
    $("#tabs").tabs({
        activate: function(event ,ui) {
           var id = $(ui.newPanel).prop('id');
        }
      }
    );
 });
 var id = $("#tabs li.ui-state-active").attr('data-value'); //get id in other function

答案 4 :(得分:0)

如果您像我一样通过Google来到这里,并且正在使用jQuery UI 1.9.X,请使用activatebeforeActivate个事件来获取id

$('selector').tabs({
  activate: function(e, ui) {
    var id = $(ui.newPanel).prop('id');
  }
});

Documentation