让我们说我的HTML看起来像这样:
<p>12345, 23, 64229, 359</p>
此段可以有数百个以逗号分隔的值。 它也可以是空的。
我想把这些值变成链接。 第一个值应链接到“http://www.example.com/?id=12345” “http://www.example.com/?id=23”的第二个值 ..等等。
最好的方法是什么?
答案 0 :(得分:2)
您可以使用正则表达式.replace()
,如下所示:
$("p").html(function(i, h) {
return h.replace(/\d+/g, function(m) { return "http://www.example.com/?id=" + m; });
});
You can test it out here,或者点击链接:
$("p").html(function(i, h) {
return h.replace(/\d+/g, function(m) {
return "<a href='http://www.example.com/?id="+m+"'>"+m+"</a>";
});
});
答案 1 :(得分:1)
试一试: http://jsfiddle.net/uJRb6/
var nums = $('p').text().split(/\s*,\s*/);
var tags = '';
$.each(nums,function(i,val) {
tags += '<a href=http://www.example.com/?id=' + val + '>' + val + '</a><br>'
});
$('body').append(tags);
如果您担心内容的安全性,可以这样做:
var nums = $('p').text().split(/\s*,\s*/);
var tags = [];
$.each(nums,function(i,val) {
tags.push($('<a>',{text:val + ' ', href:'http://www.example.com/?id=' + val}));
});
$(tags).appendTo('body');
答案 2 :(得分:1)
你不需要jQuery,你可以用纯javascript做这个:
vals = $('p').html().split(',');
for(var i in vals) {
tags += '<a href=http://www.example.com/?id=' + val + '>link</a><br>'
}
$('body').append(tags)