2012-12-12 28 views
6

Tôi khá mới với JQuery.JQuery: Cách trích xuất một neo từ href

Tôi muốn nhận giá trị của một neo từ href với JQuery.

Nếu tôi có ví dụ sau, làm cách nào tôi có thể nhận được giá trị "5" từ href bằng JQuery?

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

Cảm ơn trước

-James

+0

gì nếu bạn nhận được hai số thay vì một, giống như 15, 16 vv bạn muốn nhận được rằng toàn bộ số? hay chỉ là nhân vật cuối cùng? – Swarne27

+0

Tôi thực sự sẽ cần tất cả các giá trị sau khi neo # –

Trả lời

2

Sử dụng như sau:

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

Lưu ý rằng các số nhận dạng phân đoạn có thể chứa các ký tự '#' tiếp theo, điều này sẽ phá vỡ phần trên. –

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

Trước tiên, bạn nhận được href, và sau đó bạn sẽ có được một phần sau khi đầu tiên#:

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

Đây được gọi là "Hash". Nói liên kết của bạn đã có một id, bạn có thể nhận nó như thế này:

document.getElementById("link").hash; 

này vẫn sẽ cung cấp cho bạn "#", nhưng bạn có thể dễ dàng thay thế nó:

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

Chúc may mắn!

-1

Giả sử rằng sẽ không có sự xuất hiện '#' nữa.

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

thẻ html sẽ

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

này sẽ mang lại tất cả các thẻ neo với một số giá trị href liên kết

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

Nếu bạn muốn để có được những con số cho rằng các URL luôn luôn làm theo cùng một cấu trúc, hãy thử cách này,

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

Nếu bạn định sử dụng điều này ở một số nơi hoặc nếu bạn chỉ muốn một mã sạch hơn, tôi khuyên bạn hãy xem điều này URL parser.

Sau khi bạn đã cài đặt nó, bạn chỉ cần sử dụng nó như thế này:

var anchor = $.url('http://yoursite.com/user/showUsers#5').attr('anchor'); 
Các vấn đề liên quan