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」を使用して、その要素内の各リンクを見つけます。

最初のグループ (グループは次のようになります: '(.*)') は、キャプチャする最初のグループを表します。これは、要素が保持している情報が必要になるためです。

2 番目のグループは保存したい情報で、画像の URL を指定する変数がわかります。

4 行目で、必要なものを置き換えます。数字が続く各 $ 記号は、3 行目でキャプチャしたグループです。

正規表現でテストを行いたい場合は、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 に答える