0

我在这个变量中有这个:“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"/>');  

            });
4

2 回答 2

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>/g' 找到该元素内的每个链接。

第一组(一组看起来像这样:'(.*)')代表我们要捕获的第一组,因为我们需要元素携带的信息。

第二组是我们要存储的信息,因此我们知道要为我们的图像 URL 提供什么变量。

在第四行,我们将去替换我们需要的东西。每个 $ 符号后跟一个数字是我们在第三行捕获的一个组。

如果您想对正则表达式进行一些测试,我当然可以推荐http://gskinner.com/RegExr/

于 2012-11-07T22:42:29.233 回答
0

如果我理解了,你必须改变这一行:

$(this).find(a).text().replaceWith(anchor); 

为了

$(this).find(a).text(varwithnewcontent); 

如果没有,对不起!

于 2012-11-07T22:24:59.900 回答