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>
展开
 我来答
单v纯微笑
2016-05-09 · 超过30用户采纳过TA的回答
知道答主
回答量:69
采纳率:85%
帮助的人:43.9万
展开全部
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]到这个前面吧。为什么会没有找到呢?~~~~(>_<)~~~~

收到飞洒1
2017-04-26 · TA获得超过1.3万个赞
知道大有可为答主
回答量:2.4万
采纳率:53%
帮助的人:2225万
展开全部
选中表格内单元格或行,(右键)插入——整行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式