0

我有一个字符串中的链接列表。

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>'

任何人都可以在这方面帮助我。提前致谢。

4

6 回答 6

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());
于 2013-04-16T09:41:07.533 回答
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);

干杯!

于 2013-04-16T10:46:55.207 回答
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”标签。

于 2013-04-16T09:43:10.863 回答
0

您好,您可以使用以下脚本。

$("a").each(function(){
  var href=$(this).attr("href");
  $(this).attr("href","getCurrentPage("+href.substring(href.lenght-1,href.length)+")");
});
于 2013-04-16T09:36:16.413 回答
0
$('a[href^="#/getpage/getData/"]').each(function(){
    var href = $(this).attr("href");
    var id = href.replace('#/getpage/getData/','');
    $(this).attr('href', 'getCurrentPage(' + id + ')');
});

你可以在这里试试。

于 2013-04-16T10:08:08.187 回答
-2

使用 javascript 的替换功能,http://www.w3schools.com/jsref/jsref_replace.asp

于 2013-04-16T09:35:18.143 回答