2010-09-27 27 views
9

¿Cuál es la forma más sencilla de devolver el "nombre de ruta" de un atributo href de etiquetas de anclaje?Obtener nombre de ruta de href en Javascript

ejemplo ... decir que tengo:

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

tengo que devolver sólo esta parte "/this/is/my/path.html".

Ideas? Estoy usando jQuery si ayuda ..

¡Gracias!

+2

Ver [ ¿Cómo puedo analizar una URL en el nombre de host y la ruta en javascript? ] (http://stackoverflow.com/questions/736513/how-do-i-parse-a-url-into-hostname-and-path-in-javascript). –

Respuesta

20

Creo que se puede utilizar ruta

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

Sí, es así de simple. http://www.devguru.com/technologies/ecmascript/quickref/location_pathname.html –

+6

Posible advertencia con esto: estoy descubriendo que IE te dará este _sin_ una barra diagonal, mientras que cualquier otro navegador lo hace? Consulte http://stackoverflow.com/questions/956233/javascript-pathname-ie-quirk y 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: Enlace roto. – rvighne

4

véase el ejemplo de trabajo aquí .. 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

Ver mi comentario en la otra respuesta en esta página con respecto a la irregularidad en IE que no devuelve la barra inicial/inicial en la ruta, frente a cómo funciona esto en todos los demás navegadores que lo hacen. (FF, chrome, safari y opera all do.) El JsFiddle proporcionado aquí es realmente útil para probar y ver esto después de abrirlo en todos los navegadores diferentes. – Funka

1

I notado que hay Todavía hay una respuesta correcta que se ocupa del fallo de IE que @Funka mencionado, así que aquí está mi solución:

HTML

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

JS

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

resultados '/ foo' en todos los navegadores

+0

'href' difiere de' pathname' cuando hay argumentos de consulta o anclajes ('/ foo # bar') – Coderer

Cuestiones relacionadas