[code="java"]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- .wd_picc1{ width:131px; height:115px; padding:5px 21px; float:left; } .wd_pic_pic{ width:130px; height:90px; } .wd_pic_text12{ width:auto; text-align:center; height:13px; } .clear{ clear:both; margin:0px; padding:0px; } --> var bfIL; function BFImage(arg0, arg1, arg2, arg3){ this.name = arg0; this.tag = arg1; this.caption = arg2; this.priceDesc = arg3; } function showBFImages(arg0, arg1){ var bfwdImageListDiv = document.getElementById(arg0); var bfImage; bfwdImageListDiv.innerHTML = ""; for(var i=1;i<=bfIL.length;i++){ bfImage = bfIL[i-1]; if(bfImage.tag==arg1){ wd_picc1 = document.createElement("div"); wd_picc1.setAttribute('class','wd_picc1'); wd_pic_pic = document.createElement("div"); wd_pic_pic.setAttribute('class','wd_pic_pic'); wd_a = document.createElement("a"); wd_a.setAttribute('href',bfImage.name); wd_a.setAttribute('rel',"lightbox[bafangwang]"); wd_a.setAttribute('title',bfImage.caption); wd_a.setAttribute('target',"_blank"); wd_img = document.createElement("img"); wd_img.setAttribute('src',bfImage.name); wd_img.setAttribute('width',"130"); wd_img.setAttribute('height',"90"); wd_a.appendChild(wd_img); wd_pic_pic.appendChild(wd_a); wd_picc1.appendChild(wd_pic_pic); wd_pic_text12 = document.createElement("div"); wd_pic_text12.innerHTML = bfImage.caption; wd_pic_text12.setAttribute('class','wd_pic_text12'); wd_picc1.appendChild(wd_pic_text12); wd_pic_text122 = document.createElement("div"); wd_pic_text122.innerHTML = bfImage.priceDesc==''?" ":bfImage.priceDesc; wd_pic_text122.setAttribute('class','wd_pic_text12'); wd_picc1.appendChild(wd_pic_text122); bfwdImageListDiv.appendChild(wd_picc1); } } document.getElementById("code").value= bfwdImageListDiv.innerHTML; }
s1s2bfIL = new Array(6); bfIL[0] = new BFImage("0bdba4e1-2783-4ed5-ad2a-998bb02cfd0d.jpg", 1, "标题一", ""); bfIL[1] = new BFImage("abee9a0c-cfeb-4e9e-de3f-914d7c53fd39.jpg", 1, "标题二", ""); bfIL[2] = new BFImage("ba3e9a6c-deb7-4418-ab37-90e27c531939.jpg", 1, "标题三", ""); bfIL[3] = new BFImage("0d90e78b-0db2-429b-a1ee-2a28b91b8068.jpg", 2, "标题一2", ""); bfIL[4] = new BFImage("0ac1d905-b15d-47f9-9eb4-034cb9be44a2.jpg", 2, "标题二2", ""); bfIL[5] = new BFImage("0bd2c9e5-a014-4516-83d8-56f40f628a87.jpg", 2, "标题三2", ""); //document.getElementById("bfwdImageList").innerHTML= document.getElementById("code").value;
[/code]
点击s1或s2 让动态生成的div 横排显示(现在ie6显示竖排,ff显示正常)
OK,经过反复实验,发现你这是碰到了IE的一个渲染问题,除了IE本身是垃圾的问题之外。。你的代码的写法也不是很规范,所以改正过来就可以了。
首先,你只要将
wd_picc1.setAttribute('class','wd_picc1');
这句话改成:
wd_picc1.className = "wd_picc1";
这个例子马上就能用。
关于这个问题跟你的代码,还有一些补充:
第一,注意全局变量。如果这个变量是局部的,一定要加上var来定义才行,不然会变成全局变量,会带来很多隐患。比如
wd_picc1 = document.createElement("div");
应该改成
var wd_picc1 = document.createElement("div");
第二,面向对象的写法,更方面快捷的写法。
wd_picc1.setAttribute('class','wd_picc1'); 可以改成
wd_picc1.className = "wd_picc1";
同理,其他的, wd_a.setAttribute('href',bfImage.name);也可以改成
wd_a.href=bfImage.name;当然,还是要注意加上var
关于这个IE的渲染问题,就是因为你的class是采用setAttribute的方式给设定的class,IE可能不认识,所以,你在外面css定义的属性它根本都没生效。
关于这样的问题如何解析,对于IE,你可以用IE Developer Toolbar来查看。类似与firebug