我正在使用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?
如果有人能够指出什么是错的,我会非常感激。
答案 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]);
}
});
我希望这会有所帮助。