我在这个var:“ver”中有这个 在这里我有几行像这样:
<div class="link" id="1"><a ...>Anchor</a></div>
<div class="link" id="2"><a ...>Anchor 2</a></div>
我在jquery中搜索代码,将上面的代码转换为:
<div class="link" id="1"><a ...><img src="...?anchor=Anchor" /></a></div>
<div class="link" id="1"><a ...><img src="...?anchor=Anchor 2" /></a></div>
我对代码的期望:找到每个锚点 - 获取它 - 生成显示此锚点的图像。 PS:我有“图像生成”的功能。
解决:
$(".link").each(function(){
anchor = $(this).find('a').text();
$(this).find('a').html('<img src="generateLink.php?nr='+encodeURIComponent(anchor)+'" width="39" height="12"/>');
});
答案 0 :(得分:2)
我想最好的方法是使用正则表达式。
jQuery('.link').each(function() {
jQuery(this).html(
jQuery(this).html().replace(/<a(.*)>(.*)<\/a>/g,
'<a $1><img src="..?anchor=$2" /></a>')
);
});
在第一行,您告诉jQuery使用类“link”获取每个元素。 然后你可以使用'/(.*)< / a&gt; / g'找到该元素中的每个链接。
第一组(一组看起来像这样:'(。*)')表示我们想要捕获的第一组,因为我们需要 元素携带的信息。
第二组是我们想要存储的信息,因此我们知道要为我们的图像提供什么变量。
在第四行,我们将去替换我们需要的东西。每个$ -sign后跟一个数字是我们在第三行捕获的一个组。
如果你想对正则表达式进行一些测试,我肯定会推荐http://gskinner.com/RegExr/
答案 1 :(得分:0)
如果我理解,你必须改为:
$(this).find(a).text().replaceWith(anchor);
有关
$(this).find(a).text(varwithnewcontent);
如果没有,抱歉!