如何通过索引(如数组)引用特定的jquery ui选项卡

时间:2012-06-13 02:57:37

标签: javascript jquery jquery-ui dom

有一种想法是,也许我应该创建一个数组并且只是.each()所有选项卡以我想要的方式创建引用但似乎已经有一种方法可以做到这一点我可能没有意识到范围或语法。

例如我有$ tabs.tabs(),我想更改给定索引的AJAX URL和标题,例如:

for (var x = index; x < (tab_counter - 1); x++) {  
    $tabs.tabs(x).text(!!$tabs.tabs(x + 1).text() ? $tabs.tabs(x + 1).text() : "Deleted");
    //is there a syntax to refer to tabs in this manner?
}

$ tabs已初始化为 var $tabs = $("#pages").tabs( ...

假设tab_counter保持最新(它在添加和删除事件中递增和递减) - 如果我按照建议尝试类似于

for (var x = 0; x < (tab_counter - 1); x++) {
 console.log($tabs.tabs.eq(x).text() + " @ index " + x);
}

为了循环浏览所有标签标题。语法中是否有我遗漏的东西? eq()似乎是正确的解决方案,但我怀疑我没有正确使用它。

解决方案

$tabis = $('#pages ul li a');

for (var x = 0; x < tab_counter; x++) {  
  console.log($tabis.eq(x).text() + " at " + x);
}

/* Prints the text label of each tab within the selected list of tabs. */

感谢您的帮助dbaseman,这正是我想要的。我在这个过程中学到了很多东西,所以我非常感谢

3 个答案:

答案 0 :(得分:0)

也许使用 eq

$tabs.eq(x).text( ... )

答案 1 :(得分:0)

所有标签都给出了您可以选择的一致命名的id属性。

答案 2 :(得分:0)

一种解决方案是使您自己的函数从每个选项卡的ID返回对象:

$tabs.tabs = function (index) {
        return $("#tab" + index);
}

这假设您的标签具有“tab0”,“tab1”等ID,但它可以使用任何ID。