Javascript 需要将字符串数据中的所有超链接更改为其他值
我有一个字符串中的链接列表Javascript 需要将字符串数据中的所有超链接更改为其他值,javascript,jquery,Javascript,Jquery,我有一个字符串中的链接列表 var data='<ol> <li><a href="#/getpage/getData/1">A Christmas Carol</a></li> <li><a href="#/getpage/getData/2">Copyright</a></li> </ol>' var-data='1〕 ' 需要
var data='<ol>
<li><a href="#/getpage/getData/1">A Christmas Carol</a></li>
<li><a href="#/getpage/getData/2">Copyright</a></li>
</ol>'
var-data='1〕
'
需要使用javascript或jquery将字符串中的所有链接更改为以下格式
data = '<ol>
<li><a href="getCurrentPage(1)">A Christmas Carol</a></li>
<li><a href="getCurrentPage(2)">Copyright</a></li>
</ol>'
data='1〕
'
在这方面有人能帮我吗。
提前感谢。使用javascript的替换功能,您好,您可以使用以下脚本
$("a").each(function(){
var href=$(this).attr("href");
$(this).attr("href","getCurrentPage("+href.substring(href.lenght-1,href.length)+")");
});
尝试:
var data=''
变量el=$(“”+数据+“”);
el.find('li')。每个(功能(i){
$(this.find('a').attr('href',“getCurrentPage”(+(i+1)+”);
});
data=el.html();
警报(数据);
对于未排序的字符串
var data='<ol><li><a href="#/getpage/getData/1">A Christmas Carol</a></li><li><a href="#/getpage/getData/2">Copyright</a></li></ol>'
var el = $("<div>"+ data + "</div>");
el.find('li').each(function(i) {
var num = $(this).find('a').attr('href').replace('#/getpage/getData/','');
$(this).find('a').attr('href' , "getCurrentPage("+ num +")");
});
alert(el.html());
var data=''
变量el=$(“”+数据+“”);
el.find('li')。每个(功能(i){
var num=$(this.find('a').attr('href').replace('#/getpage/getData/','');
$(this.find('a').attr('href',“getCurrentPage(+num+”));
});
警报(el.html());
也许你可以试试:
// use Regex to reformat the data
var myregex = new RegExp('<a href="#/getpage/getData/([0-9]+)">', 'g'); // g means "global", i.e. match all
var formated_data = data.replace(myregex, '<a href="getCurrentPage($1)">') // $1 is replaced by the content of the 1st parenthetis of the regex
//使用Regex重新格式化数据
var myregex=new RegExp(“”,'g');//g表示“全球”,即匹配所有
var formatted_data=data.replace(myregex“”)/$1由regex的第一个父项的内容替换
这将在“#/getpage/getData/”+任意整数形式下找到所有带有a href的“a”标记,并在“getCurrentPage”(+上面的整数+”)形式下用带有href的“a”标记替换它们。您也可以只匹配HREF而不考虑“a”标记
你可以试试。我觉得你已经找到了解决办法。只是我花了一些时间在这上面,我想分享我的解决方案。如果你不同意我的解决办法,我不介意。如果您能看看解决方案,我将不胜感激 这是小提琴
$('body').append('').find('div:last').addClass('temp');
$('.temp').html(数据);
$('.temp a[href^=“#/getpage/getData/”)。每个(函数(){
var href=$(this.attr(“href”);
var id=href.replace(“#/getpage/getData/”,“”);
$(this.attr('href','getCurrentPage('+id+'));
});
数据=$('.temp').html();
$('.temp').text(数据);
干杯 你对RegExp有什么概念吗?这是一个功能强大的工具,似乎适合您的需要!4.我对他们一无所知。。你能帮我吗。我们可以用RegExp..吗。。?字符串是来自服务器的动态数据。请参阅下面我的建议!如果您还有2-3个小时阅读一些文档,那么RegExp非常简单,您将看到它非常强大(您应该在没有简单解决方案或性能限制的时候使用它们)。您在这里有了一个良好的开端:页面中将有许多其他链接。。如果我这样做,其他人也会受到影响(您可以将标记类设置为特定的类型,并可以使用$(“.classname”)所有代码都是相同的,因为我们不知道当前字符串,它是动态的…:(哦,那么甚至很难预测目标字符串,使用regexp如果对字符串进行排序(“1”首先出现在HTML页面中,然后是“2”…)但是,如果不是这样的话,正则表达式解决了性能较低的问题。如果有人可以检查我的正则表达式,我没有长时间使用它们,并且忘记了许多需要转义的特殊字符
// use Regex to reformat the data
var myregex = new RegExp('<a href="#/getpage/getData/([0-9]+)">', 'g'); // g means "global", i.e. match all
var formated_data = data.replace(myregex, '<a href="getCurrentPage($1)">') // $1 is replaced by the content of the 1st parenthetis of the regex
$('a[href^="#/getpage/getData/"]').each(function(){
var href = $(this).attr("href");
var id = href.replace('#/getpage/getData/','');
$(this).attr('href', 'getCurrentPage(' + id + ')');
});
$('body').append('<div/>').find('div:last').addClass('temp');
$('.temp').html(data);
$('.temp a[href^="#/getpage/getData/"]').each(function(){
var href = $(this).attr("href");
var id = href.replace('#/getpage/getData/','');
$(this).attr('href', 'getCurrentPage(' + id + ')');
});
data=$('.temp').html();
$('.temp').text(data);