使用jquery动态更改将字符串追加到现有urlhref附加两次

问题描述

我正在尝试使用jquery'attr'将字符串动态附加到href。我无法理解为什么我编写的以下代码在现有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.com&amp;">
            Click</a>
</div>

结果是: https://example.com?redirect=www.test.com&www.google.comwww.google.com

www.google.com要来两次。请帮我修复它。

解决方法

我不太明白为什么您要&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.com&amp;">
            Click</a>
</div>

,

您的代码运行正常。参见here。还有一点上下文将确实有帮助。您是否打算附加url onclick事件?

$('.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.com&amp;">
            Click</a>
</div>

<p class="showUri"></p>

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...