2011-05-16 84 views
0

說我有3段,不一定是段落標記。在這三段中,「仙境」一詞出現5次。我需要一個腳本,可以將這些「WonderLand」的實例包裝在一個span或div中,給它一個普通的類和一個計數的實例類。最後一部分是我需要幫助的,其餘的我知道該怎麼做。用計數類包裝Word的實例

例如,第一個實例將具有class =「Common Instance1」,最後一個將具有class =「Common Instance5」。

我覺得我可以將每個實例存儲在一個數組中,然後使用數組索引值(顯然爲+1)並將其附加到類名稱,但我想要建議。

回答

2

我不知道如何做到這一點的唯一方法是使用*選擇器和第二個循環來添加增量類,因此可能會有更高效的方法來完成此操作。這段代碼會將Wonderland這個詞包裝成wl類和遞增類wl0, wl1, wl2等。由於您沒有指定使用*選擇器的容器標籤的類型,因此根據頁面大小的不同,這可能表現不佳。您可以通過將選擇器中的body更改爲更簡潔的包裝來改善此情況。

// wrap Wonderlands 
$('body *:contains("Wonderland")').each(function(i,el){ 
    $(this).html(function(j,v){ 
     return v.replace(/Wonderland/ig, '<span class="wl">$&</span>'); 
    }); 
}); 

// add incremental class 
$('span.wl').each(function(i, el){ 
    $(this).addClass('wl' + i); 
}); 

See demo →