我有一個html字符串我想直接轉儲到一個元素。這個html字符串包含一些標籤,並且我需要在其src屬性的前面添加一個路徑。如何在追加元素之前解析元素的內容? (jQuery)
目前,我正在做這樣的事情:
// note, htmlString is coming in from an external xml file...
var htmlString = "<img src='img1.jpg'/><br/><img src='img2.jpg'/>";
var imgContainer = $('<div />');
imgContainer.append(htmlString);
var prefix = "some/path/to/img/";
imgContainer.find('img').each(function(i, el) {
$(el).attr('src', prefix + $(el).attr('src'));
});
這工作,但我看到了不預先考慮路徑的失敗的資源負載。好像瀏覽器試圖在創建imgContainer元素時立即加載圖像,即使它沒有附加到文檔中。我想避免那些失敗的負載。
我想我可以追加前解析htmlString但它是通過它的創建後,該元素不錯,只是$。每()...
注:我已經通過問這個問題,創建一個有學問jQuery元素通過$(htmlString)
立即導致在htmlString
內的所有資源上加載嘗試。所以,我必須以某種方式操作htmlString
,然後才能將其包裝到jQuery對象中。
嘗試在'each()'中使用原始的jQuery對象。刪除'我,el'並用$(this)'替換'$(el)'。不知道這是否會做一些事情,但嘿,很容易嘗試。 – elclanrs 2012-02-20 19:22:24
@elclanrs沒有骰子......可以說是更清潔的代碼壽。 – ericsoco 2012-02-20 19:26:12