toString()不起作用

时间:2010-08-30 21:27:44

标签: javascript jquery jquery-ui

我正在使用jQuery标签,我有一些代码会在我更改标签时触发。

$('#container-1').tabs({ onClick: function(clickedTab, divElement, hiddenTab) {

    var selectedTab = clickedTab.toString();
// var pos = selectedTab.IndexOf("#") + 1;
var results = selectedTab.substring(5);

// selectedTab.IndexOf("#") + 1
alert(results);
    }
});

我已经注释掉了有问题的代码,但是当我尝试确定#字符的位置时,我收到了一个错误:

对象http://www.omnicom-innovations.com/play/tabsdemo1.html#fragment-2没有方法'IndexOf'

我很沮丧,通过使用toString()方法,它会将对象转换为字符串。这是基于我对类似帖子的理解:

jQuery and split not working together?

如果有人能够指出什么是错的,我会非常感激。

2 个答案:

答案 0 :(得分:2)

indexOf以小写字母I开头。

答案 1 :(得分:0)

据我所知,你只是想在#之后获得价值。要在JavaScript中执行字符串操作,最好使用正则表达式,因为JavaScript非常快速地解释它们。

对于此示例,您可以执行以下操作:

$('#container-1').tabs({ onClick: function(clickedTab, divElement, hiddenTab) {
        var selectedTab = clickedTab.toString();
        //Matches all characters after a #
        var results = /#.+/.exec(selectedTab);
        //var results will contain all matches of the used Expression as an Array, so you want to get the first result
        alert(results[0]);
    }
});

我希望这会有所帮助。