学习途中新手 insertRow() 问题

得一得漂 2017-08-06 12:58:38
代码如下:

<table id="tab81" border="1">
<caption>点击表格变色</caption>
<thead>
<tr>
<th colspan="3">标题1</th>
</tr>
</thead>
<tbody>
<tr>
<td>单元格11</td>
<td>单元格12</td>
<td>单元格13</td>
</tr>
<tr>
<td>单元格21</td>
<td>单元格22</td>
<td>单元格23</td>
</tr>
<tr>
<td>单元格31</td>
<td>单元格32</td>
<td>单元格33</td>
</tr>
</tbody>
<tfoot>
<td>备注</td>
<td colspan="2"></td>
</tfoot>
</table>

<input type="button" value="增加行" onclick="addtr821()">

js这边写了一个增加行的函数和一个表格变色的函数:

<script type="text/javascript">

function addtr821(){
var tab82=document.getElementById('tab81');
var tradd=tab82.insertRow(tab82.rows.length-1)
var shuzhi82=tab82.rows.length-2
tradd.innerHTML="<tbody><tr><td>新增"+shuzhi82+"1</td><td>新增"+shuzhi82+"2</td><td>新增"+shuzhi82+"3</td></tr></tbody>"
}

function tabcell81(){
var tab82=document.getElementById('tab81');
var row81=tab82.rows;
var rlen81=jiancha();
for (var i = 0; i < rlen81; i++) {
var cell81=row81[i].cells;
for (var j = 0; j < cell81.length; j++) {
cell81[j].onclick=function(){
if (this.style.background=='') {
this.style.background='lightblue';
}else{
this.style.background='';
}
}
}
}
}
tabcell81()
</script>


现在的问题是:打开页面最初的表格变色成功,但是js增加的表格无法变色?

尝试:this 换成了 event.target 和 event.currentTarget 都没用,是insertRow()和this有什么关联吗?
...全文
147 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
得一得漂 2017-08-06
  • 打赏
  • 举报
回复
感谢版主!!!
  • 打赏
  • 举报
回复
要重新绑定事件,要不tabcell81()执行的时候当然只有已经存在才绑定了事件 function addtr821() { var tab82 = document.getElementById('tab81'); var tradd = tab82.insertRow(tab82.rows.length - 1) var shuzhi82 = tab82.rows.length - 2 tradd.innerHTML = "<tbody><tr><td>新增" + shuzhi82 + "1</td><td>新增" + shuzhi82 + "2</td><td>新增" + shuzhi82 + "3</td></tr></tbody>" tabcell81() }

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧