jQuery选项卡 - 根据选项卡文本选择选项卡

时间:2011-11-02 19:33:18

标签: jquery jquery-ui jquery-tabs

是否可以根据标签的标题进行标签选择?我目前有一个设置,其链接指向选项卡的整数值,但希望能够仅通过字符串值选择选项卡。

当前更改功能

<a href="javascript:changeTab(3)">Application</a>
function changeTab(tabID) {
    $('#tabs').tabs('select', tabID);
}

我希望能做什么

<a href="javascript:changeTab('Driver Application')">Application</a>
function changeTab(tabID) {
    $('#tabs').tabs('select', tabID);
}

我在SO上找到了一个示例,它获取了标签文本的VALUE,但没有使用已知值来确定所选标签的内容。

3 个答案:

答案 0 :(得分:2)

试试这段代码。我们的想法是根据其内容获取选项卡的ID,然后使用现有的选项卡API来选择它。

<a href="javascript:changeTab('Driver Application')">Application</a>
function changeTab(tabContents) {
    $('#tabs').tabs('select', $(".ui-tabs-nav a:contains(tabContents)").attr("href"));
}

答案 1 :(得分:2)

'select'方法也可以使用选择器,所以如果你可以忍受使用标签的id,你的代码可能如下所示:

<a href="javascript:changeTab('#driverapplication')">Application</a>
function changeTab(tabID) {
    $('#tabs').tabs('select', tabID);
}

如果不这样做,如果你真的想使用标签文本本身,你可以找到标签,然后向后工作以找到id ......

function changeTab(tabText) {
    var href = $('#tabs li a:contains("' + tabText + '")').attr("href");
    tabs('select', href);
}

明显地调整味道。

答案 2 :(得分:1)

function changeTab(sTabContent) {
    var iId = $(".ui-tabs-nav li a:contains('" + sTabContent + "')")
        .parent().index();
    $('#tabs').tabs('select', iId);
}

另见jsfiddle