var all = document.getElementsByTagName('img');
for(i = 0; i < all.length; i++){
var newimg;
(newimg=document.createElement('div')).style.cssText="display:inline;width:"+all[i].width+"px;height:"+all[i].width+"px;background-image:url("+all[i].src+");";
all[i].parentNode.replaceChild(newimg, all[i]);
}
仅替换4个示例图像(test1.jpg到test4.jpg)中的两幅图像(1和3),并且不显示任何div背景。 我在做这个错吗?用div替换所有图像背景元素
到目前为止已经产生的输出结果:
<div style="display: inline; width: 400px; height: 400px; background-image: url("http://localhost/test1.jpg");"></div>
<img src="test2.jpg">
<div style="display: inline; width: 796px; height: 796px; background-image: url("http://localhost/test3.jpg");"></div>
<img src="test4.jpg">
的感谢!
是否真的用"实体取代了你的双引号?或者只是一个stackoverflow格式化工件? – 2010-11-03 05:36:52
不存在引号 - 如果您要写入代码url('“+ url +”') - 生成的输出将是相同的。我猜javascript中的渲染器只是默认添加了这个。 – Tobias 2010-11-03 05:41:25
cssText =“background-image:url(”+ all [i] .src +“);”;结果如下:cssText =“background-image:url('”+ all [i] .src +“');”;或者:cssText =“background-image:url(\”“+ all [i] .src +”\“);”; – Tobias 2010-11-03 05:42:44