动态选项卡似乎没有 ID

发布于 2024-11-08 18:51:24 字数 943 浏览 7 评论 0原文

我使用以下脚本动态添加选项卡到我的页面:

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 一样上面的循环。

但是,如果我手动输入 add tabs 和 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?

I am dynamically adding tabs to my page using the following script:

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

where results contains json data.

This all works find, except for when I try to get the tab id via the following script:

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

That line returns nothing, as if an id is not set for the tabs in the loop above.

However, that line works fine if I manually type add tabs and ids e.g.

<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>

For this manual html, the line $("li.ui-tabs-selected").attr("id") returns either tab_1 or tab_2.

How do I get the id of the tab from when I create tabs using the loop above? I am assuming I need to give them id's when adding the tabs? But that is just an assumption. If that is the case, how do I give them ids?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情绪少女 2024-11-15 18:51:24

它不会添加 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" ); 作为 文档中描述

It does not add ids because it does not need to.

It uses the index of the tab to identify them.

Why do you need to have an id on them ?


update

To add an id for each tab you can do the following (assuming that you use the code you provided in your question where the new tabs are added at the end by default)

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..

example: http://jsfiddle.net/gaby/7Grb8/


update 2

if you want to do it with the index, then you should use the var selected = tabs.tabs( "option", "selected" ); as described in the docs

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文