2013-08-25 167 views
1

我必须更改部分链接。用jQuery替换href元素

确切地说,我必须改变“/?”到“/全部?”在网站上的每一个href。

我正在读一些关于这方面的知识,但没有任何工作。

你能帮我吗?

问候。

+1

[你尝试了什么](http://mattgemmell.com/2008/12/08/what-have-you-tried/)? –

+0

是啊,但替换功能给我唯一的错误,我没有想法如何做到这一点,即时通讯新手使用JavaScript和jQuery –

回答

3

尝试:

$('a').each(function() { 
    $(this).attr('href', $(this).attr('href').replace('/?', '/all?')) 
}); 

jsFiddle example

+0

类型错误:无法调用空 的“每个”我得还这个错误 我的网站是在Magento平台上,我的jQuery版本是1.4.2 –

+0

你确定jQuery被包含在内吗? – j08691

+0

你真的应该看看文档,这些简单的函数有一些有趣的重载版本(避免使用'.each');) –

0

要改变你使用这个jQuery功能的链接的href:当网站更改为要覆盖的href属性是什么

$("a").attr("href", "http://www.google.com/") 

1

该解决方案,你不会需要jQuery的,我也假设你渴望改变/每一场比赛?在您的网址,如果不是,只能使用代替( '/?',“/所有?)

的jsfiddle - >http://jsfiddle.net/eZgmD/

var anchors = document.getElementsByTagName('A'); 
for (var i = 0; i<anchors.length; i++) 
{ 
     anchors[i].href = anchors[i].href.replace(/\/\?/g,'/all?') 
}; 
+0

正则表达式对于一个简单的字符串替换来说是矫枉过正的。 –

+0

他没有说这是在URL的一个地方 –

+0

什么时候会发生第二个非转义的'?'的第二个实例(显然尽管无效的uris)? –

1
$('a').attr('href', function(){ 
    return this.href.replace('/?', '/all?'); 
}); 

.attr可以传递函数为分配参数。

+0

很干净。 +1 ... – Jashwant