2012-11-07 46 views
0

我在這個變種具有這樣的:「版本」 在這裏,我有幾行像這樣的:查找,jQuery中更換的每個元素

<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"/>'); 

      }); 
+2

,你不能有兩個'ID =「1」',希望這是一個錯字。 –

+1

你的問題是什麼? –

+1

另外ID不應以數字開頭。 – jtheman

回答

2

我想最好的方法是使用正則表達式。

jQuery('.link').each(function() { 
    jQuery(this).html(
     jQuery(this).html().replace(/<a(.*)>(.*)<\/a>/g, 
      '<a $1><img src="..?anchor=$2" /></a>') 
    ); 
}); 

在第一行中,您告訴jQuery使用「鏈接」類來獲取每個元素。 然後,您可以使用'/(.*)</a>/g'來查找該元素中的每個鏈接。

第一組(一個組看起來像這樣:'(。*)')代表我們要捕獲的第一個組,因爲我們需要元素攜帶的 信息。

第二組是我們想要存儲的信息,所以我們知道什麼變量給我們的圖像網址。

在第四行我們會去取代我們需要的東西。每個$ -sign後跟一個數字就是我們在第三行中捕獲的一個組。

如果你想要做的正則表達式的一些測試,我可以肯定推薦http://gskinner.com/RegExr/

0

如果我的理解,你必須更改線路有:

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

對於

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

如果沒有,對不起了!

+0

這不是我在尋找,但無論如何感謝。 –

+0

對不起,你可以試着解釋你需要什麼嗎? – Robyflc

+0

我知道你在說什麼,但我在代碼中寫錯了。 –