用jQuery替换部分href

时间:2016-06-27 17:41:52

标签: javascript jquery

我已经阅读了有关同一主题的其他问题,我觉得我明白该做什么,但它没有用。

出于必要,我有两个域名。在一个特定页面上,我尝试更新链接,以便指向第二个域。如果我只是遍历每一个' a'元素,但如果我尝试匹配特定链接则不会。我离开了我的第一次尝试注释,我不确定哪种方法更好。

如果该函数位于该特定页面上,但来自其他国家/地区,则会调用此函数。我无法看到我做错了什么。

我认为this.href应该获得完整的,合格的URL,但它似乎并没有这样做。

function updateLinksToUSAstore() {

  $('a[href*="manitobahdev.myshopify.com"]').each(function() {
//    $(this).attr('href', $(this).attr('href').replace('manitobahdev.myshopify.com', 'manitobahdev-us.myshopify.com')); 
      this.href = this.href.replace('manitobahdev', 'manitobahdev-us'); 
  });
  var CountryName = localStorage.getItem('CountryName');    
  // Change currently selected country text
  $('#country-label, #country-label-mobile').text(CountryName);
}

2 个答案:

答案 0 :(得分:0)

试试这样:

var href = null;
$("a").each(function()
{
  href = $(this).attr("href");
  if(href.contains("manitobahdev.myshopify.com"))
  {
    $(this).attr("href", href.replace("manitobahdev.myshopify.com", "manitobahdev-us.myshopify.com"));
  }
});

我现在在手机上,所以我无法对此进行测试。对不起,如果它不起作用。 另外,我真的不明白为什么你只想将manitobahdev部分编辑为manitobahdev-us,因为两者都以myshopify.com结尾

答案 1 :(得分:0)

  

可能会帮助你。



//get all selector
var celem=jQuery('a[href*="manitobahdev.myshopify.com"]');

for(var i=0;i<celem.length;i++){ 
  console.log('====== BEFORE ===='); 
  //get each href of selector 
var ele=jQuery(celem[i]).prop('href'); 
console.log(ele);
 
  jQuery(celem[i]).prop('href',ele.replace('manitobahdev','manitobahdev-us')); 
  
console.log('====== AFTER ===');                           
ele=jQuery(celem[i]).prop('href'); 
console.log(ele);                             
                           
                           }
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a id='test1' href="manitobahdev.myshopify.com/ABC">Test 1</a>
<a  id='test2' href="http://manitobahdev.myshopify.com/ZAXC">Test 2</a>
<a  id='test3' href="manitobahdev.myshopify.com/USER/1">Test 3</a>
&#13;
&#13;
&#13;