2010-09-27 20 views
9

adresindeki href yolunu al, bir bağlantı etiketleri href özniteliğinden "yol adını" döndürmenin en basit yolu nedir?Javascript

örnek ... Ben var ki: Ben sadece bu "/this/is/my/path.html" bölümünü dönmek gerekiyor

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

.

Fikirler? Eğer yardımcı olursa jQuery kullanıyorum ..

Teşekkürler!

+2

Bkz. [ Javascript'te bir URL'yi ana makine adına ve yolu nasıl ayrıştırırım? ] (http://stackoverflow.com/questions/736513/how-do-i-parse-a-url-into-hostname-and-path-in-javascript). –

cevap

20

Sana yol adı kullanabilirsiniz düşünüyorum

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

Evet, bu kadar basit. http://www.devguru.com/technologies/ecmascript/quickref/location_pathname.html –

+6

Bunun ile ilgili olası uyarı: Diğer tüm tarayıcılar çalışırken, IE'nin size bu _without_ bir lider eğik çizgi verecek olduğunu buluyorum. Http://stackoverflow.com/questions/956233/javascript-pathname-ie-quirk ve http://blogs.msdn.com/b/ieinternals/archive/2011/02/28/internet-explorer-window-location sayfasına bakın. -pathname-eksik-eğik çizgi-ve-host-has-port.aspx – Funka

+0

@ SamuelSjöberg: Kırık bağlantı. – rvighne

4

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

Bu sayfadaki diğer yanıt hakkındaki yorumumda, yolun önde gelen/ilk eğik çizgisini döndürmeyen, diğer tüm tarayıcılarda nasıl çalıştığıyla ilgili IE'deki usulsüzlükle ilgili görüşüme bakın. (FF, krom, safari ve opera hepsi bunu yapar.) Burada sağlanan JsFiddle, tüm farklı tarayıcılarınızda açtıktan sonra bunu test etmek ve görmek için gerçekten yararlıdır. – Funka

1

ben .. burada örnek çalışma bkz fark ettim Hala @Funka söz IE hata ile ilgilenen hiçbir uygun cevabı, işte benim çözüm:

HTML

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

JS

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

tüm tarayıcılarda sonuçları '/ foo'

+0

'href', sorgu argümanları veya ankrajlar olduğunda' 'pathname'den farklıdır ('/foo # bar') – Coderer