2011-10-29 80 views
0

我該如何編寫JavaScript迭代通過表,抓取類,然後用圖像替換?因此,例如我有一個表有附加到他們的數字類欄目:使用類名加載相應的圖像路徑

<td class="images 12-345"></td> 
<td class="images 98-763"></td> 

這些數字與我想查詢的其餘部分被處理完畢後,用JavaScript加載圖像名稱coorelate。所以最終產品看起來像:

<td class="images 12-345"><img src="http://site.com/12-345.jpg"></td> 
<td class="images 98-763"><img src="http://site.com/98-763.jpg"></td> 

但是,直到一切都完成加載。我想只是在那裏有一個佔位符圖形,在所有處理完成後都用正確的圖像文件替換。

我將如何遍歷這些行,然後將適當的圖像加載到每個單元格?我一直在想,我可以使用.images選擇器來檢索每個唯一的數字類名稱並將其傳遞給一個變量。然後使用該變量,我可以將它附加到圖像路徑的其餘部分,並將其放回到適當的表格單元格中。我不希望這個開始處理,直到dom的其餘部分完成加載並且原始的sql查詢完成。我能否就如何編寫此文件的最佳方式提供一些建議。 jQuery是我的選擇。

回答

1

你可以做這樣的事情用jQuery:

$('td.images').each(function() { 
    var $td  = $(this); 
    var classes = $(this).attr('class').split(/\s+/); 
    var num  = $.grep(classes, function(c) { return c.match(/^[\d-]+$/) }); 
    if(num.length) 
     $td.append('<img src="http://site.com/' + num[0] + '.jpg">'); 
}); 

演示(只在單元格中的數字):http://jsfiddle.net/ambiguous/vrDvc/1/

您可能需要調整$.grep,你如何處理num陣列以匹配您的實際數據,但基本技術應該工作。

+0

謝謝,我會嘗試。我剛剛意識到我的例子並不好,因爲課程不僅僅是數字,而是連字符。我更新了我的問題以反映這一點。 – Zac

+0

@Zac:該格式只需要對正則表達式進行小小的調整,請查看我的更新。 –

+0

謝謝!這很酷,而且是我所問的。雖然沒有解決我的問題..我想通過加載像這樣的腳本,它會停止瀏覽器崩潰,但數量或請求仍然似乎是壓倒性的。回到繪圖板。謝謝你的幫助。 – Zac