动态添加一行js代码在火狐中出现undefined
动态添加一行代码在ie中显示正常,在火狐中显示undefined,请大家看看哪里出了问题functionaddOrderRow(tab,rowNum,colNum,obj...
动态添加一行代码在ie中显示正常,在火狐中显示undefined,请大家看看哪里出了问题function addOrderRow(tab,rowNum,colNum,obj,addType){var detailbody=document.getElementById(tab);var cell = document.createElement("td").appendChild(document.createTextNode("foo"));var row = document.createElement("tr").appendChild(cell);var newrow=obj.parentNode.parentNode.innerHTML;if(addType=='add'){var row = detailbody.insertRow(-1);for(var i=0;i<obj.parentNode.parentNode.childNodes.length;i++){ var cell=row.insertCell(-1); cell.innerHTML=obj.parentNode.parentNode.childNodes[i].innerHTML; //如果表单中有值就清空 for(var k=0;k<cell.childNodes.length;k++){ if (cell.childNodes[k].type == 'text') { cell.childNodes[k].value = ''; } if (cell.childNodes[k].type == 'textarea') { cell.childNodes[k].value = ''; } if (cell.childNodes[k].type == 'checkbox') { cell.childNodes[k].checked = false; } if (cell.childNodes[k].type == 'radio') { cell.childNodes[k].checked = false; } if (cell.childNodes[k].type == 'select-multiple') { cell.childNodes[k].selectedIndex = -1; } if (cell.childNodes[k].type == 'select-one') { cell.childNodes[k].selectedIndex = -1; } }//cell.innerHTML=arr[i]; } obj.parentNode.parentNode.childNodes[0].innerHTML+='<input type=hidden id=text'+(detailbody.childNodes.length+1)+'>'; }else if(addType=='copy'){//copyvar row = detailbody.insertRow(-1);for(var i=0;i<obj.parentNode.parentNode.childNodes.length;i++){var cell=row.insertCell(-1);cell.innerHTML=obj.parentNode.parentNode.childNodes[i].innerHTML;}obj.parentNode.parentNode.childNodes[0].innerHTML+='<input type=hidden id=text'+(detailbody.childNodes.length+1)+'>';}else{//deleteif(confirm("确定要删除吗?")){ obj.parentNode.parentNode.parentNode.removeChild(obj.parentNode.parentNode);}else{return false;}}//只显示最后一个add按钮var leg = detailbody.childNodes.length;if(leg>=1){for(var j=0;j<leg-1;j++){document.getElementsByName("btnAdd")[j].style.visibility="hidden";} document.getElementsByName("btnAdd")[leg-1].style.visibility="visible"; }//显示除第一个外所有delete按钮if(leg>=1){ for(var j=0;j<leg-1;j++){document.getElementsByName("btnDelete")[j].style.visibility="visible";}} }
展开
1个回答
展开全部
您好!很高兴为您答疑。
简单看了一下您的代码,这个问题无非是您的代码在通过parentNode和childNodes配合获取同级别或跨级别元素的时候发生了问题。要想调试这个问题可以利用火狐的firebug,很容易就可以看到代码异常行,再根据异常提示进行修正即可。另外,鉴于您的实在没法阅读,如果您需要协助调试,建议您打包上传您完整的html页面。
如果对我们的回答存在任何疑问,欢迎继续问询。
简单看了一下您的代码,这个问题无非是您的代码在通过parentNode和childNodes配合获取同级别或跨级别元素的时候发生了问题。要想调试这个问题可以利用火狐的firebug,很容易就可以看到代码异常行,再根据异常提示进行修正即可。另外,鉴于您的实在没法阅读,如果您需要协助调试,建议您打包上传您完整的html页面。
如果对我们的回答存在任何疑问,欢迎继续问询。
追问
谢谢问题已解决,把chindodes替换了getElementsByTagName("td")就好了
追答
不客气,很高兴您能解决问题。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询