如何使用jquery每个循环用多个动态URL替换多个链接?

时间:2019-04-08 19:20:41

标签: javascript jquery

我的mysite.com内部链接有多个标题,如下所示:

Article 1 https://externalsite1.com/url1


Article 2 https://externalsite2.com/url2


Article 3 https://externalsite3.com/url3


我需要将所有文章内部网站链接替换为其下面的外部网站网址

我在这里尝试过:http://jsfiddle.net/n4hwjrsq/2/ 但没有运气,请帮助我

$("a").each(function() {
  var external_link = $("div.ptb_original_link").text(); 
  $(this).attr('href',$(this).attr('href').replace('',external_link)); 
});

我希望输出具有如下外部站点链接:

Article 1 https://externalsite1.com/url1


Article 2 https://externalsite2.com/url2


Article 3 https://externalsite3.com/url3


2 个答案:

答案 0 :(得分:1)

$(".entry_title a").each(function() {
  $(this).attr('href',$(this).closest('div').next().html()); 
});

或者确定在带有外部链接的链接之前是否还有其他div个链接:

$(".entry_title a").each(function() {
  $(this).attr('href',$(this).closest('div').next('.ptb_original_link').html()); 
});

Demo

答案 1 :(得分:1)

您需要更具体地使用external_link变量,否则,您将最终获得每个链接中的每个URL:

$("a").each(function() {
  var external_link = $(this).parent().parent().next("div.ptb_original_link").text();
  $(this).attr('href', external_link);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="ptb_title">
  <h2 class="entry_title"><a href="https://example.com/link1">Article 1</a></h2>
</div>
<div class="ptb_original_link">https://externalsite1.com/url1</div>
<br>
<div class="ptb_title">
  <h2 class="entry_title"><a href="https://example.com/link2">Article 2</a></h2>
</div>
<div class="ptb_original_link">https://externalsite2.com/url2</div>
<br>
<div class="ptb_title">
  <h2 class="entry_title"><a href="https://example.com/link3">Article 3</a></h2>
</div>
<div class="ptb_original_link">https://externalsite3.com/url3</div>
<br>