我使用以下脚本动态地向我的页面添加标签:
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_1
或tab_2
。
当我使用上面的循环创建标签时,如何获取标签的id
?我假设我需要在添加标签时给他们ID?但这只是一个假设。如果是这种情况,我该如何给他们ID?
答案 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