2016-06-27 87 views
-1

我已閱讀關於同一主題的其他問題,並且我覺得我理解要做什麼,但它不起作用。用jQuery替換href的一部分

我有兩個域,出於必要性。在一個特定頁面上,我試圖更新鏈接,以便它們指向第二個域。它的功能,如果我只是循環每個'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); 
} 
+0

我看到不工作的唯一方法是,如果'$( 'A [HREF * = 「manitobahdev.myshopify.com」]')'返回任何內容。你記錄了返回的數組嗎? –

+2

你能告訴我們一些'a'元素嗎?我只是嘗試了一個快速[jsfiddle](https://jsfiddle.net/kc6zLdpe/1/),它工作正常。確保在測試JavaScript時不使用緩存。 – Wikiti

+0

@Wikiti問題似乎是鏈接是相對的,但不應該this.href獲取完整的URL? – Patrick

回答

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美國,因爲兩端與myshopify.com

+0

在這種情況下,它們是兩個不同的子域,因此它將鏈接到第二個商店。實際的實際URL是不同的。 – Patrick

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);        
 
          
 
          }
<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>