从绝对url字符串获取锚点值

时间:2011-12-30 19:56:55

标签: javascript jquery regex

我正在使用这个jQuery选择器:

$("a[href*='#']").click(function(e) {
    e.preventDefault();
    alert(#valueinhere)
});

选择链接到锚点的链接

我的链接是绝对的和相对的,因此它们看起来像http://www.myweb.com/test#anchor或类似test#anchor或类似#anchor

如何从上面的所有链接获取字符串#anchor?有没有正则表达式或类似的东西?

(由于必要window.location.hash,我无法使用e.preventDefault()

4 个答案:

答案 0 :(得分:4)

为什么你不能从锚元素中获得hash

this.hash

它与您是否阻止点击事件的默认行为无关。

$("a[href*='#']").click(function(e) {
    e.preventDefault();
    alert(this.hash);
});

这是一个有效的example

答案 1 :(得分:3)

$("a[href*='#']").click(function(e) {
    e.preventDefault();
    alert( this.href.split("#")[1] )
});

答案 2 :(得分:2)

alert(this.href.split("#")[1]);

答案 3 :(得分:1)

indexOf

中使用String
$('a[href*="#"]').click(function(e) {
    var url = $(this).attr('href');                    
    e.preventDefault();
    var newUrl = url.substring(url.indexOf("#"));
    alert(newUrl);
});

FIDDLE:http://jsfiddle.net/8SdW2/1/