首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何替换链接

如何替换链接
EN

Stack Overflow用户
提问于 2011-12-17 12:22:54
回答 4查看 90关注 0票数 2

我有4个链接

代码语言:javascript
复制
<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?=”

如果我使用这个脚本:

代码语言:javascript
复制
$('.eTag').attr('href',$('.eTag').attr('href').replace('/search/','/searchq?=')); 

链接包括:

代码语言:javascript
复制
<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?=”?

EN

回答 4

Stack Overflow用户

发布于 2011-12-17 12:24:27

您需要遍历所有这些元素:

代码语言:javascript
复制
$('.eTag').each(function() {
  $(this).attr('href', $(this).attr('href').replace('/search/','/searchq?='));
});

我很惊讶你的代码居然还能运行。

票数 5
EN

Stack Overflow用户

发布于 2011-12-17 12:35:25

最好的方法是将函数传递给.attr()

代码语言:javascript
复制
$('.eTag').attr('href',function(i,href) {
    return href.replace('/search/','/searchq?='); 
});

原因是这样的:

代码语言:javascript
复制
$('.eTag').attr('href')

...only会给出找到的第一个元素的结果。

票数 3
EN

Stack Overflow用户

发布于 2011-12-17 12:40:52

您所做的几乎是正确的,但它将指向相同的链接,因为attr值将始终从第一个元素返回。像这样做

代码语言:javascript
复制
$('.eTag').each(function() {
  $(this).attr('href', $(this).attr('href').replace('/search/','/searchq?='));
});

小提琴:http://jsfiddle.net/USzfa/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8542568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档