如果它们包含某些文本,我需要替换一些链接,每个链接的URL在主机站点上从服务器更改为服务器,因此我只能使用文本替换。 在下面的html中,我需要找到包含“Rosters”和“Forums”的ul#hsubmenuitems,并用2个新的链接和URL路径替换它们
<div id="hsubmenu">
<ul id="hsubmenuitems">
<li></li>
<li></li>
<li><a href="#">Scoreboard</a>
</li>
<li><a href="#">Rosters</a>
</li>
<li><a href="#">Forums</a>
</li>
</ul>
</div>
更改为:
<div id="hsubmenu">
<ul id="hsubmenuitems">
<li></li>
<li></li>
<li><a href="#">Scoreboard</a>
</li>
<li><a href="NEW URL 1">NEW LINK 1</a>
</li>
<li><a href="NEW URL 2">NEW LINK 2</a>
</li>
</ul>
</div>
我目前正在使用CSS删除我不想要的链接,然后使用jQuery添加一个新的链接,但我知道有一种更有效的方式,我只是不能流利的jQuery来弄明白。
$("#hsubmenuitems").append('<li><a href="NEW URL 1">NEW LINK 1</a></li>');
答案 0 :(得分:3)
使用:contain()
即可:
$("#hsubmenuitems a:contains('Rosters')").text('new link').attr('href', 'new href');
$("#hsubmenuitems a:contains('Forum')").text('new link').attr('href', 'new href');
更多ifo,http://api.jquery.com/contains-selector/
以下是演示http://jsfiddle.net/cepdmfLo/
请记住将代码放入文档中。
要更新目标属性,它与href版本非常相似。以下示例将目标属性设置为_blank
$("element").attr('target', '_blank');
请参阅http://api.jquery.com/attr/了解详情
你可以链接整个事物
$("#hsubmenuitems a:contains('Rosters')").text('new link').attr('href', 'new href').attr('target', '_blank');
http://jsfiddle.net/cepdmfLo/2/&#39;名册&#39;新链接有目标
答案 1 :(得分:0)
试试这个:
$(function(){
$('ul#hsubmenuitems li').each(function(){
var text = $(this).text();
if(text.indexOf('Rosters')!=-1)
{
$(this).text('NEW LINK 1');
$(this).attr('href','NEW URL 1');
}
else if(text.indexOf('Forums')!=-1)
{
$(this).text('NEW LINK 2');
$(this).attr('href','NEW URL 2');
}
});
});
<强> Demo 强>
答案 2 :(得分:0)
这是一个示例,它将找到具有指定文本的链接,并用新文本和href替换它们。希望这会有所帮助:JsFiddle
$(document).ready(function(){
var searchTerms = ["Rosters","Forums"];
$("a").each(function(index, element){
var linkText = $(this).text();
var inArray = $.inArray(linkText, searchTerms);
if (inArray !== -1)
{
$(this).attr("href", "http://www.google.com");
$(this).text("Google " + index);
}
});
});
答案 3 :(得分:0)
在jquery中使用 replaceWith() 来替换某个链接
$('ul#hsubmenuitems li a[href=#]:contains(Rosters)').replaceWith("<a href=NEW URL 1>NEW LINK 1</a>")
$('ul#hsubmenuitems li a[href=#]:contains(Forums)').replaceWith("<a href=NEW URL 2>NEW LINK 2</a>");