javascript - pagina - Obtenga el valor href local de la etiqueta anchor(a)
javascript change href attribute (5)
El siguiente código obtiene la ruta completa, donde los puntos de anclaje:
document.getElementById("aaa").href; // http://example.com/sec/IF00.html
mientras que el de abajo obtiene el valor del atributo href
:
document.getElementById("aaa").getAttribute("href"); // sec/IF00.html
Tengo una etiqueta de anclaje que tiene un valor href local y una función de JavaScript que usa el valor href pero que lo dirige a un lugar ligeramente diferente al que normalmente iría. La etiqueta se ve como
<a onclick="return follow(this);" href="sec/IF00.html"></a>
y una función de JavaScript que parece
baseURL = ''http://www.someotherdomain.com/'';
function follow(item) {
location.href = baseURL + item.href;
}
Espero que item.href
simplemente devuelva una cadena corta de "sec / IF00.html", pero en su lugar devuelve el href completo, "http://www.thecurrentdomain.com/sec/IF00.html". ¿Hay alguna forma de que pueda extraer solo el href corto como se coloca en la etiqueta de anclaje <a>
? ¿O lo pierdo por el comportamiento natural de HTML?
Supongo que podría usar una manipulación de cadenas para hacer esto, pero se complica porque mi página local puede ser "http://www.thecurrentdomain.com/somedir/somepath/sec/IF00.html", y mi campo href puede o puede que no tenga un subdirectorio (por ejemplo, href="page.html"
vs. href="sub/page.html"
), por lo que no siempre puedo eliminar todo antes de la última barra diagonal.
Puede que se pregunte por qué estoy solicitando esto, y es porque simplemente hará que la página sea mucho más limpia. Si no es posible obtener solo el href corto (como se coloca en la etiqueta <a>
delimitadora), entonces probablemente podría insertar un campo adicional en la etiqueta, como link="sec/IF00.html"
, pero nuevamente, Eso sería un poco más desordenado.
Es triste ver cuántas personas dieron respuestas tan incómodas e incómodas. Esta es la forma más fácil de recuperar href:
$("a").click(function(e){ var hash = this.hash; alert(hash); });
Todo hecho en una sola línea de código. Esto es flexible y no se basa en obtener elementId como respuestas anteriores.
La propiedad href establece o devuelve el valor del atributo href de un enlace.
var hello = domains[i].getElementsByTagName(''a'')[0].getAttribute(''href'');
var url="https://www.google.com/";
console.log( url+hello);
document.getElementById("link").getAttribute("href");
Si tiene más de una etiqueta <a>
, por ejemplo:
<ul>
<li>
<a href="1"></a>
</li>
<li>
<a href="2"></a>
</li>
<li>
<a href="3"></a>
</li>
</ul>
Puede hacerlo así: document.getElementById("link")[0].getAttribute("href");
para acceder a la primera matriz de etiquetas <a>
, o depende de la condición que realice.
document.getElementById("aaa").href; //for example: http://example.com/sec/IF00.html