对于每个链接,如果最接近类别“ x”的div包含文本“ a”,则替换部分链接

时间:2019-01-04 17:28:07

标签: javascript jquery

我想根据类"div.companyName .dataText"最近的div是否包含特定文本来更改链接。如果div包含VIP公司,我想将"pg=tfind"替换为"pg=tfind&s_promoCode=vipteammate"。如果包含“普通”,我想用"pg=tfind&s_promoCode=teammate"替换它。我在下面的代码中添加了两个连接链接的代码,但是有多个。当前,脚本使用vipteammate更新了两者的链接。 HTML是硬编码的,不能直接编辑,因此必须使用js完成。

这是我到目前为止所拥有的:

jQuery(document).ready(function() {
  jQuery('.join .dataText a').each(function(){
     if($(this).closest('#team-listings').find('.companyName .dataText:contains("VIP Company")')){
     this.href = this.href.replace('pg=tfind', 'pg=tfind&s_promoCode=vipteammate');
     } else if($(this).closest('#team-listings').find('.companyName .dataText:contains("Normal")')) {
      this.href = this.href.replace('pg=tfind', 'pg=tfind&s_promoCode=teammate');
     }
  }); 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="team-listings">
	<div class="companyName">
		<span class="dataText">
		VIP Company
		</span>
	</div>
	<div class="join">
		<span class="dataText">
			<a href="http://wwww.link.com?pg=tfind&fr=8939898">Join</a>
		</span>
	</div>
</div>

<div class="team-listings">
	<div class="companyName">
		<span class="dataText">
		Normal
		</span>
	</div>
	<div class="join">
		<span class="dataText">
			<a href="http://wwww.link.com?pg=tfind&fr=87349834">Join</a>
		</span>
	</div>
</div>

已经停留了一段时间,我们将不胜感激!

1 个答案:

答案 0 :(得分:1)

您应该找到最近的#team-listing,然后找到包含VIP公司(或“普通”)的dataText元素。同样在您的if语句中,您应检查length> 0以确定是否找到了它。

我在下面修改了您的代码段

$(document).ready(function() {
    $('.dataText a').each(function(index, item){
        if($(item).closest('#team-listings').find('.dataText:contains("VIP Company")').length > 0){
            this.href = this.href.replace('pg=tfind', 'pg=tfind&s_promoCode=vipteammate');
        } else if($(item).closest('#team-listings').find('.dataText:contains("Normal")').length > 0) {
            this.href = this.href.replace('pg=tfind', 'pg=tfind&s_promoCode=teammate');
        }
    }); 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="team-listings">
	<div class="companyName">
		<span class="dataText">
		VIP Company
		</span>
	</div>
	<div class="join">
		<span class="dataText">
			<a href="http://wwww.link.com?pg=tfind&fr=8939898">Join</a>
		</span>
	</div>
</div>

<div id="team-listings">
	<div class="companyName">
		<span class="dataText">
		Normal
		</span>
	</div>
	<div class="join">
		<span class="dataText">
			<a href="http://wwww.link.com?pg=tfind&fr=87349834">Join</a>
		</span>
	</div>
</div>