动态标签似乎没有ID

时间:2011-05-19 14:13:00

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

我使用以下脚本动态地向我的页面添加标签:

var tabs = $("#tabs");
$.each(results, function(index, item) {
    tabs.tabs("add","get_tab_content.aspx?tab=" + item.key, item.value);
});

其中results包含json数据。

除了我尝试通过以下脚本获取标签id时,所有内容都可以找到:

$("li.ui-tabs-selected").attr("id")

该行不返回任何内容,就好像没有为上面的循环中的选项卡设置id

但是,如果我手动输入添加标签和ids,例如

,该行可以正常工作
<div id="tabs">
    <ul>
        <li class="tab" id="tab_1"><a href="tab0.htm">Home</a></li>
        <li class="tab" id="tab_2"><a href="tab1.htm">Default</a></li>
    </ul>
</div>

对于本手册html,行$("li.ui-tabs-selected").attr("id")会返回tab_1tab_2

当我使用上面的循环创建标签时,如何获取标签的id?我假设我需要在添加标签时给他们ID?但这只是一个假设。如果是这种情况,我该如何给他们ID?

1 个答案:

答案 0 :(得分:1)

它不会添加id,因为它不需要。

它使用选项卡的索引来标识它们。

为什么你需要有一个id?


<强>更新

要为每个标签添加ID,您可以执行以下操作(假设您使用问题中提供的代码,默认情况下在最后添加新标签

tabs.tabs("add","get_tab_content.aspx?tab=" + item.key, item.value)
    .find('>ul>li:last') // find the last li element, the tab we just added
    .attr('id',item.id); // use whatever id you want here ..i assumed you have an id in your json..

示例:http://jsfiddle.net/gaby/7Grb8/


更新2

如果你想用索引来做,那么你应该使用var selected = tabs.tabs( "option", "selected" );作为described in the docs