替换链接和文本,如果文本包含:
Replace link and text , if text contains :
我需要替换一些链接,如果它们包含某些文本,每个链接的url从服务器到主机站点上的服务器更改,所以我只能使用文本替换。在下面的html中,我需要找到包含"名单"answers"论坛"的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>');
使用:contain()
您可以做:
$("#hsubmenuitems a:contains('Rosters')").text('new link').attr('href', 'new href');
$("#hsubmenuitems a:contains('Forum')").text('new link').attr('href', 'new href');
更多信息,请访问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/'Roster'新链接有目标
试试这个:
$(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');
}
});
});
下面是一个示例,它将查找带有指定文本的链接,并用新文本和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);
}
});
});
在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>");
相关文章:
- 无法将包含文本和图像的SVG保存到画布
- 存储包含html标记的文本
- Firefox插件:保存到文本文件的HTTP日志,其中包含时间、用户名、计算机名;t创建文本文件
- 如果Div包含精确文本,则添加类
- 检查选择器在jQuery中是否包含文本(即不是媒体)
- 使用 jQuery 检查文本可见性 .包含代码的行为不符合预期
- jQuery 隐藏按钮,如果它们不包含文本
- 当文本框中包含数据时禁用按钮
- 过滤包含一些文本的 PHP 数据表
- 创建包含文本内容的新 Google 云端硬盘文件 (javascript)
- 使用 javascript 检查元素是否包含子标记而不是文本
- 将包含 javascript 的文本绑定到模板中的 innerHTML
- 如果单元格中的文本包含特定单词,则在其中放入图像
- 选择框文本等于而不是选择框文本包含-jQuery
- JavaScript-当整个文本包含时替换
- 如果文本包含“@”,请更改“@”的颜色
- 替换链接和文本,如果文本包含:
- Magento翻译的文本包含在Javascript文件
- jQuery slideDown()在文本包含<和>时不工作
- 按属性值和文本包含隐藏元素