我一直在谷歌搜索,并发现许多类似的问题围绕www,但没有任何指出我的问题到底。 p>
我有一个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...
}
有关如何做到这一点的任何想法或想法?我此刻迷失了。
答案 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"));
});
答案 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]`
}