Каков наилучший способ установить href
атрибут<a>
тега во время выполнения с помощью jQuery?
Кроме того, как вы получаете значение href
атрибута <a>
тега, используя jQuery?
Каков наилучший способ установить href
атрибут<a>
тега во время выполнения с помощью jQuery?
Кроме того, как вы получаете значение href
атрибута <a>
тега, используя jQuery?
Ответы:
Чтобы получить или установить атрибут элемента HTML, вы можете использовать element.attr()
функцию в jQuery.
Чтобы получить атрибут href , используйте следующий код:
var a_href = $('selector').attr('href');
Чтобы установить атрибут href , используйте следующий код:
$('selector').attr('href','http://example.com');
В обоих случаях, пожалуйста, используйте соответствующий селектор. Если вы установили класс для элемента привязки, используйте '.class-name'
и, если вы установили идентификатор для элемента привязки, используйте '#element-id'
.
В jQuery 1.6+ лучше использовать:
$(selector).prop('href',"http://www...")
чтобы установить значение, и
$(selector).prop('href')
чтобы получить значение
Короче говоря, .prop
получает и устанавливает значения в объекте DOM , а также .attr
получает и устанавливает значения в HTML . Это делает .prop
немного быстрее и, возможно, более надежным в некоторых контекстах.
Установите href
атрибут с
$(selector).attr('href', 'url_goes_here');
и читать это с помощью
$(selector).attr('href');
Где «селектор» - это любой допустимый селектор jQuery для вашего <a>
элемента («.myClass» или «#myId», чтобы назвать самые простые из них).
Надеюсь это поможет !
href
атрибут, предполагая, что ваш селектор правильный.
Небольшое сравнение тестов производительности для трех решений:
$(".link").prop('href',"https://example.com")
$(".link").attr('href',"https://example.com")
document.querySelector(".link").href="https://example.com";
Здесь вы можете выполнить тест самостоятельно https://jsperf.com/a-href-js-change
Мы можем прочитать значения href следующими способами
let href = $(selector).prop('href');
let href = $(selector).attr('href');
let href = document.querySelector(".link").href;
Здесь вы можете выполнить тест самостоятельно 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>