JQuery: 如何从 href 中提取锚点

6

我对JQuery还比较陌生。

我想使用JQuery获取一个a href中的值。

如果我有以下例子,如何使用JQuery从href中获取“5”这个值?

<a href="user/showUsers#5">User 5</a>

感谢您预先的支持。
-詹姆斯

如果你得到的不是一个数字,而是两个数字,比如15、16等,你想要获取整个数字还是只想要最后一个字符? - Swarne27
我实际上需要锚点#后面的所有值。 - James White
8个回答

2
请使用以下内容:
var id = $('a').attr('href').split('#');
id = id[id.length - 1];

2
请注意,片段标识符可能包含后续的 # 字符,这可能会破坏上述内容。 - T.J. Crowder

1

这些被称为“哈希”(Hash)。假设你的链接有一个id,你可以像这样获取它:

document.getElementById("link").hash;

这将仍然给你“#”,但你可以轻松地替换它:
document.getElementById("link").hash.replace("#","");

祝你好运!


1
如果您想获取数字,而URL始终遵循相同的结构,请尝试以下方法:
$(document).ready(function() 
{
    var number = $("a").attr("href").match(/#([0-9]+)/)[1];
    alert(number);
});

0

首先获取 href,然后获取第一个 # 后面的部分:

var href = $("selector_for_the_link").attr('href'),
    index = href.indexOf('#'),
    anchor = href.substring(index + 1);

0

这将返回所有带有某些链接 href 值的锚标签

$('a[href*="#"]').each(function(){
       if(this.href.split('#').length>1 && this.href.split('#')[1] != ""){                                                
           console.log(this.href.split('#')[1]);
       }
});

0

如果您将在多个地方使用此代码,或者只是想使代码更加清晰,我建议您查看这个URL解析器

安装后,您只需像这样使用它:

var anchor = $.url('http://yoursite.com/user/showUsers#5').attr('anchor');

-1
 var id =  $(this).attr("href").split("#");
id = id[id.length - 1];

-1

假设不会再出现'#'。

<script type="text/javascript" language="javascript">
function GetAnchorValue(CurrCtrl)
{
    var hrefText = $(CurrCtrl).attr("href");
    var RequiredValue;
    if(hrefText.indexOf("#") != -1)
    {
        RequiredValue = hrefText.split("#")[1];
    }
}
</script>

HTML 标签将会是:

<a href="user/showUsers#5" onclick="return GetAnchorValue(this);">Test Anchor</a>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接