JS表格增加一行死活有问题,求助,跪谢! 10
我想实现,当选择了某一行时,点击增加一行,然后在选择的这一行前面增加一行,可是我这个代码跑不出来啊,求助,菜鸟想不明白<html><head><scriptlanguag...
我想实现,当选择了某一行时,点击增加一行,然后在选择的这一行前面增加一行,可是我这个代码跑不出来啊,求助,菜鸟想不明白
<html>
<head>
<script language="javascript">
//窗口表格增加一行
function addNewRow(){
var chkObj=document.getElementsByName("chkArr");
var tabObj=document.getElementById("myTab"); //获取添加数据的表格
for(var k=0;k<chkObj.length;k++){
if(chkObj[k].checked){
break;
}
if(k==chkObj.length-1&&chkObj[k].checked==0)
k=-1; //没有选中任意一行
}
var rowsNum = tabObj.rows.length; //获取当前行数
var colsNum = tabObj.rows[rowsNum-1].cells.length;//获取行的列数
if(k>0){
var myNewRow = document.createElement("tr");
tabObj.insertBefore(myNewRow,tabObj,tabObj.rows[++k]);
}
else{
var myNewRow = tabObj.insertRow(rowsNum);//插入新行
}
var newTdObj1=myNewRow.insertCell(0);
newTdObj1.innerHTML="<input type='checkbox' name='chkArr' id='chkArr'"+rowsNum+" style='width:20px' />";
var newTdObj2=myNewRow.insertCell(1);
newTdObj2.innerHTML="<input type='text' name='nodecode' id='nodecode'"+rowsNum+" style='width:40px' value='"+rowsNum+"'/>";
var newTdObj3=myNewRow.insertCell(2);
newTdObj3.innerHTML="<input type='text' name='nodename' id='nodename'"+rowsNum+" style='width:120px' />";
var newTdObj4=myNewRow.insertCell(3);
newTdObj4.innerHTML="<input type='text' name='nodeper' id='nodeper'"+rowsNum+" style='width:60px' />";
}
</script>
</head>
<body>
<input type="button" name="xx" onclick="addNewRow();" value="增加一行" />
<input type="button" name="yy" onclick="removeRow();" value="删除一行" />
<table width="600px" border="1" cellpadding="0" cellspacing="0" id="myTab">
<tr>
<td width="40px" class="top-bt liebiao-c" align="center" >操作</td>
<td width="40px" class="top-bt liebiao-c" align="center" >序号</td>
<td class="top-bt liebiao-c" align="center" >节点名称</td>
<td width="80px" class="top-bt liebiao-c" align="center" >节点比例</td>
</tr>
</table>
</body>
</html> 展开
<html>
<head>
<script language="javascript">
//窗口表格增加一行
function addNewRow(){
var chkObj=document.getElementsByName("chkArr");
var tabObj=document.getElementById("myTab"); //获取添加数据的表格
for(var k=0;k<chkObj.length;k++){
if(chkObj[k].checked){
break;
}
if(k==chkObj.length-1&&chkObj[k].checked==0)
k=-1; //没有选中任意一行
}
var rowsNum = tabObj.rows.length; //获取当前行数
var colsNum = tabObj.rows[rowsNum-1].cells.length;//获取行的列数
if(k>0){
var myNewRow = document.createElement("tr");
tabObj.insertBefore(myNewRow,tabObj,tabObj.rows[++k]);
}
else{
var myNewRow = tabObj.insertRow(rowsNum);//插入新行
}
var newTdObj1=myNewRow.insertCell(0);
newTdObj1.innerHTML="<input type='checkbox' name='chkArr' id='chkArr'"+rowsNum+" style='width:20px' />";
var newTdObj2=myNewRow.insertCell(1);
newTdObj2.innerHTML="<input type='text' name='nodecode' id='nodecode'"+rowsNum+" style='width:40px' value='"+rowsNum+"'/>";
var newTdObj3=myNewRow.insertCell(2);
newTdObj3.innerHTML="<input type='text' name='nodename' id='nodename'"+rowsNum+" style='width:120px' />";
var newTdObj4=myNewRow.insertCell(3);
newTdObj4.innerHTML="<input type='text' name='nodeper' id='nodeper'"+rowsNum+" style='width:60px' />";
}
</script>
</head>
<body>
<input type="button" name="xx" onclick="addNewRow();" value="增加一行" />
<input type="button" name="yy" onclick="removeRow();" value="删除一行" />
<table width="600px" border="1" cellpadding="0" cellspacing="0" id="myTab">
<tr>
<td width="40px" class="top-bt liebiao-c" align="center" >操作</td>
<td width="40px" class="top-bt liebiao-c" align="center" >序号</td>
<td class="top-bt liebiao-c" align="center" >节点名称</td>
<td width="80px" class="top-bt liebiao-c" align="center" >节点比例</td>
</tr>
</table>
</body>
</html> 展开
2个回答
展开全部
if(k>0){
var myNewRow = document.createElement("tr");
tabObj.insertBefore(myNewRow,tabObj,tabObj.rows[++k]);
}
问题出在这里,if判断中的k没有定义(上面的for循环中定义的k是局部变量,只在循环体中有效),每次判断的时候都是k=0,0>0 ? false : true;所以一直进入else里面。刚刚跑了一下代码,
tabObj.insertBefore(myNewRow,tabObj,tabObj.rows[++k]);
这个也报错了。提示方法未找到。
追问
应该有这个方法,就是在myNewRow,tabObj插入tabObj.rows[++k]到这个前面吧。为什么会没有找到呢?~~~~(>_<)~~~~
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询