请教JS兼容性问题

这文件在IE下可以运行,在FF下不能,JS不兼容,那位有空的请帮我改下,谢谢
[code="java"]


JS内嵌表格 var gseq=1; var gLastDetailImgObj=null; //显示详细信息 function showDetailNumTable(){ var innerTR = "<table border=\"1\" align='center' width='100%'><tr style=\"background:gray;\"><td>inner11</td><td>inner12</td><td>inner13</td><td>inner14</td><td>inner15</td></tr><tr><td>inner21</td><td>inner22</td><td>inner23</td><td>inner24</td><td>inner25</td></tr><tr><td>inner31</td><td>inner32</td><td>inner33</td><td>inner34</td><td>inner35</td></tr><tr><td>inner41</td><td>inner42</td><td>inner43</td><td>inner44</td><td>inner45</td></tr></table>"; var imgObj=event.srcElement; var tr=getOuterObj(imgObj,'TR'); // 得到tr对象 var newDivId=null; if(!tr.newDivId){ var newTr=document.createElement("<TR></TR>"); // 创建tr var newTd=document.createElement("<TD COLSPAN='"+tr.children.length+"' bgcolor='#F2F09F'></TD>"); // 创建td newDivId='detaildiv'+(gseq++); // 每一行内嵌的divID,每一行的ID都不同 var newDiv=document.createElement("<div id='"+newDivId+"'></div>"); // 创建div newTr.appendChild(newTd); // tr中添加td newTd.appendChild(document.createTextNode("各地区情况对比如下: ")); newDiv.innerHTML = innerTR; // 必须通过innerHTML方式添加内容,通过字符串拼进去的现实不出内容 newTd.appendChild(newDiv); // td中添加div tr.parentNode.insertBefore(newTr,tr.nextSibling); // 必须通过tr的父节点才能用insertBefore,表示插入某个元素,这里表示在tr下个元素的前面(tr的后面)插入一行 tr.newDivId=newDivId; // 把新生成的div的ID赋给DIV } switchVisible(imgObj); // 控制展开还是合上内嵌表格 if(gLastDetailImgObj!=imgObj){ switchVisible(gLastDetailImgObj); gLastDetailImgObj=imgObj; } else{ gLastDetailImgObj=null; } } function switchVisible(imgObj){ if(!imgObj) return; // 如果imgObj对象为空,则返回 var tr=getOuterObj(imgObj,'TR'); var pvisible=('true'!=tr.currentVisibility); tr.currentVisibility=(pvisible?'true':'false'); // pvisible为真时,tr.currentVisibility为true;pvisible为假时,tr.currentVisibility为false; tr.nextSibling.style.display=(pvisible? '':'none'); // pvisible为真时,tr.nextSibling.style.display为'';pvisible为假时,tr.nextSibling.style.display为none; } //取得对象外围符合指定标签的第一个对象 function getOuterObj(obj,tagName){ while(obj!=null){ if(obj.tagName==tagName) return obj; obj=obj.parentNode; } return null; }


姓名 年龄 电话 性别 住址
1 11111111 1 1 1
2 22222222 2 2 2
3 33333333 3 3 3
4 44444444 4 4 4


将上面的代码保存为html格式后就能看到效果

[/code]

2个回答

在你代码基础改了下,你看看,ie6,ff3.6 测试好用。
[code="html"]


JS内嵌表格 var gseq=1; var gLastDetailImgObj=null; window.onload = function() { var as = document.getElementById('tabstore').getElementsByTagName("a"); for(var i = 0;i < as.length;i++){ // 显示详细信息 as[i].onclick = function(e){ var innerTR = "<table border=\"1\" align='center' width='100%'><tr style=\"background:gray;\"><td>inner11</td><td>inner12</td><td>inner13</td><td>inner14</td><td>inner15</td></tr><tr><td>inner21</td><td>inner22</td><td>inner23</td><td>inner24</td><td>inner25</td></tr><tr><td>inner31</td><td>inner32</td><td>inner33</td><td>inner34</td><td>inner35</td></tr><tr><td>inner41</td><td>inner42</td><td>inner43</td><td>inner44</td><td>inner45</td></tr></table>"; var theEvent = window.event || e; imgObj = theEvent.srcElement?theEvent.srcElement:theEvent.target; var newDivId=null; // 得到tr对象 var tr=getOuterObj(imgObj,'TR'); if(!tr.newDivId){ // 创建tr var newTr=document.createElement("tr"); //创建td var newTd = document.createElement("td"); // 注意属性大小写,否则ie下无效 newTd.setAttribute("colSpan",tr.children.length); newTd.setAttribute("bgColor","#f2f09f"); // 每一行内嵌的divID,每一行的ID都不同 newDivId='detaildiv'+(gseq++); var newDiv = document.createElement("div");// 创建div newDiv.setAttribute("id",newDivId); newTd.appendChild(document.createTextNode("各地区情况对比如下: ")); // 必须通过innerHTML方式添加内容,通过字符串拼进去的现实不出内容 newDiv.innerHTML = innerTR; // td中添加div newTd.appendChild(newDiv); // tr中添加td newTr.appendChild(newTd); // 必须通过tr的父节点才能用insertBefore,表示插入某个元素,这里表示在tr下个元素的前面(tr的后面)插入一行 tr.parentNode.insertBefore(newTr,tr.nextSibling); // 把新生成的div的ID赋给DIV tr.newDivId=newDivId; } switchVisible(imgObj); // 控制展开还是合上内嵌表格 if(gLastDetailImgObj!=imgObj){ switchVisible(gLastDetailImgObj); gLastDetailImgObj=imgObj; } else{ gLastDetailImgObj=null; } } } } function switchVisible(imgObj){ // 如果imgObj对象为空,则返回 if(!imgObj) return; var tr=getOuterObj(imgObj,'TR'); var pvisible=('true'!=tr.currentVisibility); // pvisible为真时,tr.currentVisibility为true;pvisible为假时,tr.currentVisibility为false; tr.currentVisibility=(pvisible?'true':'false'); // pvisible为真时,tr.nextSibling.style.display为'';pvisible为假时,tr.nextSibling.style.display为none; tr.nextSibling.style.display=(pvisible? '':'none'); } //取得对象外围符合指定标签的第一个对象 function getOuterObj(obj,tagName){ while(obj!=null){ if(obj.tagName==tagName) return obj; obj=obj.parentNode; } return null; }


姓名 年龄 电话 性别 住址
1 11111111 1 1 1
2 22222222 2 2 2
3 33333333 3 3 3
4 44444444 4 4 4


将上面的代码保存为html格式后就能看到效果

[/code]

我抽时间给你写一份jquery做的吧。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问