我有4个链接
<a href="/search/Assassins%20Creed/" class="eTag">Assassins Creed</a>
<a href="/search/Dead%20Rising%202/" class="eTag">Dead Rising 2</a>
<a href="/search/Battlefield/" class="eTag">Battlefield</a>
<a href="/search/Rising/" class="eTag">Rising</a> 我需要将"/search/“替换为"/searchq?=”
如果我使用这个脚本:
$('.eTag').attr('href',$('.eTag').attr('href').replace('/search/','/searchq?=')); 链接包括:
<a href="/searchq?=Assassins%20Creed/" class="eTag">Assassins Creed</a>
<a href="/searchq?=Assassins%20Creed/" class="eTag">Dead Rising 2</a>
<a href="/searchq?=Assassins%20Creed/" class="eTag">Battlefield</a>
<a href="/searchq?=Assassins%20Creed/" class="eTag">Rising</a> 为什么以及如何将"/search/“替换为"/searchq?=”?
发布于 2011-12-17 12:24:27
您需要遍历所有这些元素:
$('.eTag').each(function() {
$(this).attr('href', $(this).attr('href').replace('/search/','/searchq?='));
});我很惊讶你的代码居然还能运行。
发布于 2011-12-17 12:35:25
最好的方法是将函数传递给.attr()。
$('.eTag').attr('href',function(i,href) {
return href.replace('/search/','/searchq?=');
});原因是这样的:
$('.eTag').attr('href')...only会给出找到的第一个元素的结果。
发布于 2011-12-17 12:40:52
您所做的几乎是正确的,但它将指向相同的链接,因为attr值将始终从第一个元素返回。像这样做
$('.eTag').each(function() {
$(this).attr('href', $(this).attr('href').replace('/search/','/searchq?='));
});小提琴:http://jsfiddle.net/USzfa/
https://stackoverflow.com/questions/8542568
复制相似问题