2015-06-21 62 views
0

我想更改src屬性中url的部分。這將通過點擊功能來調用。這可以改變類似按鈕的語言而無需刷新頁面以及之前選擇了另一種語言。JQuery:如何替換屬於兩個特定部分之間的屬性的一部分?

這很好,但由於有多種語言,它只能使用一次;當基地「狀態」是hu_HU(匈牙利):

$('.fb-like').attr('src', function(i, src) { 
return src.replace("hu_HU","ro_RO"); 
}); 

我改變了代碼,根據這個問題的解決方案來實現目標:JQuery: how to replace all between certain characters?但沒有成功:

$('.fb-like').attr('src', function(i, src) { 
return src.replace(/locale\=.+?\&amp/g,"locale="+ro_RO+"&amp"); 
}); 

什麼時我錯過了?任何幫助,將不勝感激!先謝謝你!

這裏是小提琴:http://jsfiddle.net/iorgu/a0aptp3g/2/

回答

2

這與one of my earlier answers

現在,您打算更改iframe的來源,因此我們不能再認爲它是window.location.href。所以,我認爲,功能的修改版本應該能夠解決您的問題:

function setGetParameter(paramName, paramValue, url) 
{ 
    var url = !!url ? url : window.location.href; 
    if (url.indexOf(paramName + "=") >= 0) 
    { 
     var prefix = url.substring(0, url.indexOf(paramName)); 
     var suffix = url.substring(url.indexOf(paramName)); 
     suffix = suffix.substring(suffix.indexOf("=") + 1); 
     suffix = (suffix.indexOf("&") >= 0) ? suffix.substring(suffix.indexOf("&")) : ""; 
     url = prefix + paramName + "=" + paramValue + suffix; 
    } 
    else 
    { 
    if (url.indexOf("?") < 0) 
     url += "?" + paramName + "=" + paramValue; 
    else 
     url += "&" + paramName + "=" + paramValue; 
    } 
    return url; 
} 

你這樣稱呼它:

$('.fb-like').attr('src', setGetParameter("locale", "ro_RO", $('.fb-like').attr('src'))); 

結果是愛情大師已經成功地改變了locale

Fiddle

+0

我發現Comment Plugin也可以用一個在DOM內給出的類來動態替換,這是'.fb_ltr',你的代碼也可以在這裏工作。 (在FB給出的基本代碼中嵌入) – iorgu

相關問題