2012-12-12 9 views
6

Ich bin ziemlich neu in JQuery.JQuery: So extrahieren Sie einen Anker von href

Ich möchte den Wert eines Ankers von einem href mit JQuery erhalten.

Wenn ich das folgende Beispiel hätte, wie könnte ich den Wert "5" von der href mit JQuery bekommen?

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

Vielen Dank im Voraus

-James

+0

was ist, wenn Sie zwei Zahlen anstelle von eins zu bekommen, wie 15, 16 usw. Sie wollen, dass ganze Zahl zu bekommen? oder nur das letzte Zeichen? – Swarne27

+0

Ich würde tatsächlich alle Werte nach dem Anker benötigen # –

Antwort

2

Verwenden Sie die folgenden Schritte aus:

var id = $('a').attr('href').split('#'); 
id = id[id.length - 1]; 
+2

Beachten Sie, dass Fragment-IDs können nachfolgende '#' Zeichen enthalten, die das oben genannte brechen würde. –

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

Zuerst die href, und dann erhalten Sie das Teil nach dem ersten #:

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

Diese werden "Hash" genannt. Sagen Sie Ihren Link eine ID hatte, können Sie es wie diese bekommen konnte:

document.getElementById("link").hash; 

Dieses noch Sie das Zeichen „#“ geben würde, aber man kann es leicht ersetzen:

document.getElementById("link").hash.replace("#",""); 

Viel Glück!

-1

Nimm an, dass es kein '#' mehr geben wird.

<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-Tag wird

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

Diese Tags alle Anker bringen mit etwas verbunden href Wert

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

Wenn Sie die Zahlen gegeben werden wollen, dass die URL immer folgen die gleiche Struktur versuchen dies aus,

$(document).ready(function() 
{ 
    var number = $("a").attr("href").match(/#([0-9]+)/)[1]; 
    alert(number); 
}); 
0

Wenn Sie dies an mehreren Stellen verwenden möchten oder wenn Sie nur einen saubereren Code wünschen, sollten Sie einen Blick auf diese URL parser werfen.

Nachdem Sie es installiert haben, verwenden Sie es wie folgt aus:

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