2010-09-27 46 views
9

cách đơn giản nhất để trả về "tên đường dẫn" từ một thuộc tính anchor tags href là gì?Lấy tên đường dẫn từ href trong Javascript

dụ ... nói rằng tôi có:

<a href="http://www.example.com/this/is/my/path.html">Blah</a> 

Tôi cần phải trả lại chỉ này "/this/is/my/path.html" phần.

Ý tưởng? Tôi đang sử dụng jQuery nếu nó giúp ..

Cảm ơn!

+2

Xem [ Làm cách nào để phân tích URL thành tên máy chủ và đường dẫn trong javascript? ] (http://stackoverflow.com/questions/736513/how-do-i-parse-a-url-into-hostname-and-path-in-javascript). –

Trả lời

20

Tôi nghĩ rằng bạn có thể sử dụng tên đường dẫn

$('a')[0].pathname; 
+0

Vâng, nó đơn giản như vậy. http://www.devguru.com/technologies/ecmascript/quickref/location_pathname.html –

+6

Cảnh báo tiềm năng với điều này: Tôi thấy rằng IE sẽ cung cấp cho bạn _without_ một dấu gạch chéo hàng đầu này, trong khi mọi trình duyệt khác đều làm như vậy? Xem http://stackoverflow.com/questions/956233/javascript-pathname-ie-quirk và http://blogs.msdn.com/b/ieinternals/archive/2011/02/28/internet-explorer-window-location -pathname-missing-slash-and-host-has-port.aspx – Funka

+0

@ SamuelSjöberg: Liên kết bị hỏng. – rvighne

4

xem ví dụ làm việc ở đây .. http://jsfiddle.net/TvNmL/

HTML ..

<a id='lnk' href="http://www.example.com/this/is/my/path.html">Blah</a> 

javascript ...

alert(document.getElementById('lnk').pathname); 
+0

Xem nhận xét của tôi về câu trả lời khác trên trang này liên quan đến bất thường trong IE mà không trả lại dấu gạch chéo/đầu tiên trong đường dẫn, so với cách hoạt động của tất cả các trình duyệt khác. (FF, chrome, safari, và opera tất cả đều làm.) JsFiddle cung cấp ở đây thực sự hữu ích để kiểm tra và thấy điều này sau khi mở trong tất cả các trình duyệt khác nhau của bạn. – Funka

1

tôi nhận thấy có vẫn không có câu trả lời thích hợp mà giao dịch với các lỗi trình duyệt IE mà @Funka đề cập, vì vậy đây là giải pháp của tôi:

HTML

<a href="/foo" id="foo">My link</a> 

JS

document.getElementById("foo").getAttribute("href"); 

kết quả '/ foo' trên tất cả các trình duyệt

+0

'href' khác với' tên đường dẫn' khi có đối số truy vấn hoặc neo ('/ foo # bar') – Coderer

Các vấn đề liên quan