我有一个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