#javascript #jquery #anchor #attr
#javascript #jquery #привязка #attr
Вопрос:
Я пытаюсь динамически добавлять строку в href с помощью jquery ‘attr’. Я не могу понять, почему приведенный ниже код, который я написал, добавляет строку дважды в существующий href. Пожалуйста, помогите. Я прочитал много статей, но, к сожалению, не помогло.
var olduri = $('a.link').attr("href");
$('a.link').attr("href", olduri 'www.google.com');
HTML-код:
<div>
<a class="link" target="_blank" title="Welcome" href="https://example.com?redirect=www.test.comamp;amp;">
Click</a>
</div>
Результат:
https://example.com?redirect=www.test.comamp;www.google.comwww.google.com
www.google.com приходит дважды. Пожалуйста, помогите мне это исправить.
Комментарии:
1. я протестировал приведенный выше код .. не нашел такого поведения. Проверьте это . Было бы хорошо, если бы вы могли включить демонстрационный код, чтобы понять реальную проблему.
2. вы нажимаете дважды
Ответ №1:
Я не совсем понимаю, почему вы хотите использовать в amp;amp;
качестве единственного разделителя для них, но мое предложение для более чистого подхода — обновить search
свойство, а не атрибут
$('a.link').prop("search", function(i, curr){
return curr 'www.google.com';
});
console.log($('a.link')[0].href)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
<a class="link" target="_blank" title="Welcome" href="https://example.com?redirect=www.test.comamp;amp;">
Click</a>
</div>
Ответ №2:
Ваш код просто отлично работает. Смотрите здесь . Также действительно помогло бы немного контекста. Планируете ли вы добавлять событие onclick url?
$('.showUri').text($('a.link').attr("href"));
$('a.link').on('click', function(e){
e.preventDefault();
var oldUri = $(this).attr('href');
$(this).attr('href', oldUri 'www.google.com');
$('.showUri').text($('a.link').attr("href"));
});
<div>
<a class="link" target="_blank" title="Welcome" href="https://example.com?redirect=www.test.comamp;amp;">
Click</a>
</div>
<p class="showUri"></p>
Комментарии:
1. да, моя цель — добавить указанную строку в URL, когда пользователь нажимает на ссылку.
2. @Kiran Я только что обновил код. Также взгляните на ссылку, чтобы вы могли ее запустить