2015-06-21 18 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

相关问题