我有一个字符串中的链接列表。
var data='<ol>
<li><a href="#/getpage/getData/1">A Christmas Carol</a></li>
<li><a href="#/getpage/getData/2">Copyright</a></li>
</ol>'
需要使用javascript或jquery将字符串中的所有链接更改为以下格式。
data = '<ol>
<li><a href="getCurrentPage(1)">A Christmas Carol</a></li>
<li><a href="getCurrentPage(2)">Copyright</a></li>
</ol>'
任何人都可以在这方面帮助我。 提前谢谢。
答案 0 :(得分:3)
尝试:
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) {
$(this).find('a').attr('href' , "getCurrentPage("+(i+1)+")");
});
data = el.html();
alert(data);
对于未排序的字符串;
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());
答案 1 :(得分:0)
您好,您可以使用以下脚本。
$("a").each(function(){
var href=$(this).attr("href");
$(this).attr("href","getCurrentPage("+href.substring(href.lenght-1,href.length)+")");
});
答案 2 :(得分:0)
也许你可以试试:
// 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
这将在“#/ getpage / getData /”+任何整数形式下找到带有href的所有“a”标签,并在“getCurrentPage(”+整数形式)下用href替换“a”标签以上+ “)”。您也可以匹配href,而无需考虑“a”标记。
答案 3 :(得分:0)
$('a[href^="#/getpage/getData/"]').each(function(){
var href = $(this).attr("href");
var id = href.replace('#/getpage/getData/','');
$(this).attr('href', 'getCurrentPage(' + id + ')');
});
您可以尝试here。
答案 4 :(得分:0)
我觉得你已经找到了解决方案。只是我花了一些时间,我想分享我的解决方案。如果你不同意我的解决方案,我不介意。如果您只是看看解决方案,我将非常感激。
这是小提琴。 http://jsfiddle.net/ardeezstyle/ARPzA/
$('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);
干杯!
答案 5 :(得分:-2)
使用javascript的替换功能,http://www.w3schools.com/jsref/jsref_replace.asp