使用jquery获取URL的一部分

时间:2011-02-15 09:23:36

标签: javascript jquery

我一直在谷歌搜索,并发现许多类似的问题围绕www,但没有任何指出我的问题到底。

我有一个jquery函数从锚标记中获取href属性,该标记应该返回该值 - #SomeIDHere

在我的开发环境中,它可以很好地工作,但在生产时它会返回当前的URI + #ID。我只需要#ID部分就可以使脚本的其余部分按预期工作。

这就是我得到href的方法,现在我只需要拆分href值并得到#ID部分。

function myFunction(sender) {
    var id = sender.getAttribute('href');
    alert(id);
    // functionallity here...
}

我试过这个solution这是一个很好的开始,但是当我尝试实现它时,我只得到了未定义的值或javascript错误。

我尝试过的一些事情:

function myFunction(sender) {
var id = sender.getAttribute('href');
var newID = $(id).search.split('#')[1]; // got an error
alert(id);
// functionallity here...
}

function myFunction(sender) {
var id = sender.getAttribute('href');
var newId = $(id).split('#')[1]; // got an error
// functionallity here...
}

function myFunction(sender) {
var id = sender.getAttribute('href');
var newId = $(sender)[0].search.split('#')[1]; // returned undefined
// functionallity here...
}

有关如何做到这一点的任何想法或想法?我此刻迷失了。

3 个答案:

答案 0 :(得分:9)

使用jquery

如果这是您的需要,请查看此内容

<a href="a.php#1">1</a>
<a href="a.php#2">2</a>

Jquery Part

$("a").live("click",function(){
   alert($(this).attr("hash"));
});

Working Example On JsFiddle

答案 1 :(得分:3)

你已经接受了,但是如果没有jQuery,你可以这样做:

var url = 'http://news.ycombinator.com/item?id=2217753#blah';

var index = url.lastIndexOf('#');

var hashId = url.substring(index + 1, url.length);

//alert(hashId);

变量hashId现在包含'blah';

答案 2 :(得分:1)

您正在混合使用jQuery和JavaScript字符串函数。这应该有用(如果你可以100%确定网址包含#something):

function myFunction(sender) {
    var id = '#' + sender.getAttribute('href').split('#')[1];
    // or `'#' + sender.href.split('#')[1]`
    // or `'#' + $(sender).attr('href').split('#')[1]`

}