¿Cuál es la mejor manera de establecer el href
atributo de la <a>
etiqueta en tiempo de ejecución usando jQuery?
Además, ¿cómo se obtiene el valor del href
atributo de la <a>
etiqueta con jQuery?
¿Cuál es la mejor manera de establecer el href
atributo de la <a>
etiqueta en tiempo de ejecución usando jQuery?
Además, ¿cómo se obtiene el valor del href
atributo de la <a>
etiqueta con jQuery?
Respuestas:
Para obtener o establecer un atributo de un elemento HTML, puede usar la element.attr()
función en jQuery.
Para obtener el atributo href , use el siguiente código:
var a_href = $('selector').attr('href');
Para establecer el atributo href , use el siguiente código:
$('selector').attr('href','http://example.com');
En ambos casos, utilice el selector apropiado. Si ha establecido la clase para el elemento de anclaje, use '.class-name'
y si ha establecido la identificación para el elemento de anclaje, use '#element-id'
.
En jQuery 1.6+ es mejor usar:
$(selector).prop('href',"http://www...")
para establecer el valor, y
$(selector).prop('href')
para obtener el valor
En resumen, .prop
obtiene y establece valores en el objeto DOM , y .attr
obtiene y establece valores en el HTML . Esto hace que sea .prop
un poco más rápido y posiblemente más confiable en algunos contextos.
Establezca el href
atributo con
$(selector).attr('href', 'url_goes_here');
y léelo usando
$(selector).attr('href');
Donde "selector" es cualquier selector jQuery válido para su <a>
elemento (".myClass" o "#myId" para nombrar los más simples).
Espero que esto ayude !
href
atributo, suponiendo que su selector sea correcto.
Pequeña comparación de prueba de rendimiento para tres soluciones:
$(".link").prop('href',"https://example.com")
$(".link").attr('href',"https://example.com")
document.querySelector(".link").href="https://example.com";
Aquí puede realizar la prueba usted mismo https://jsperf.com/a-href-js-change
Podemos leer los valores href de las siguientes maneras
let href = $(selector).prop('href');
let href = $(selector).attr('href');
let href = document.querySelector(".link").href;
Aquí puede realizar la prueba usted mismo https://jsperf.com/a-href-js-read
<style>
a:hover {
cursor:pointer;
}
</style>
<script type="text/javascript" src="lib/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$(".link").click(function(){
var href = $(this).attr("href").split("#");
$(".results").text(href[1]);
})
})
</script>
<a class="link" href="#one">one</a><br />
<a class="link" href="#two">two</a><br />
<a class="link" href="#three">three</a><br />
<a class="link" href="#four">four</a><br />
<a class="link" href="#five">five</a>
<br /><br />
<div class="results"></div>