JS给页面添加标签的同时添加标签的onclick事件
我要在页面中为表格的某一列的每个单元格动态的添加一个a超链接标签,同时给这个a标签添加一个onclick事件。我是这样做的:给此列的每个单元格设定一个ID,然后循环,每次...
我要在页面中为表格的某一列的每个单元格动态的添加一个a超链接标签,同时给这个a标签添加一个onclick事件。我是这样做的:给此列的每个单元格设定一个ID,然后循环,每次循环创建一个a标签对象,为其添加事件(事件的参数是动态的,用变量添加进去);然后再将a标签添加到td单元格中(用td.ammendchild(a))。可运行时发现只有最后一个单元格的事件被触发,也就是无论我点击哪个超链接,触发的都是最后一个单元格的事件。是不是因为JS是解释性语言啊??急求如何解决
展开
展开全部
自己试。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Test Table</TITLE>
</HEAD>
<script>
function addLink(rownum){
var size = document.all.atable;
for(var i=0;i<size.rows(rownum).cells.length;i++){
size.rows(rownum).cells(i).innerHTML += "<a href='#' onclick='changeBgColor(this)'>test</a>";
}
}
function changeBgColor(node){
node.parentElement.style.backgroundColor = "red";
}
</script>
<BODY>
<button onclick="addLink(2)">
test
</button>
<table border=1 id="atable">
<tr>
<td>01.</td>
<td>02.</td>
<td>03.</td>
<td>04.</td>
<td>05.</td>
</tr>
<tr>
<td>06.</td>
<td>07.</td>
<td>08.</td>
<td>09.</td>
<td>10.</td>
</tr>
<tr>
<td>11.</td>
<td>12.</td>
<td>13.</td>
<td>14.</td>
<td>15.</td>
</tr>
<tr>
<td>16.</td>
<td>17.</td>
<td>18.</td>
<td>19.</td>
<td>20.</td>
</tr>
</table>
</BODY>
</HTML>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Test Table</TITLE>
</HEAD>
<script>
function addLink(rownum){
var size = document.all.atable;
for(var i=0;i<size.rows(rownum).cells.length;i++){
size.rows(rownum).cells(i).innerHTML += "<a href='#' onclick='changeBgColor(this)'>test</a>";
}
}
function changeBgColor(node){
node.parentElement.style.backgroundColor = "red";
}
</script>
<BODY>
<button onclick="addLink(2)">
test
</button>
<table border=1 id="atable">
<tr>
<td>01.</td>
<td>02.</td>
<td>03.</td>
<td>04.</td>
<td>05.</td>
</tr>
<tr>
<td>06.</td>
<td>07.</td>
<td>08.</td>
<td>09.</td>
<td>10.</td>
</tr>
<tr>
<td>11.</td>
<td>12.</td>
<td>13.</td>
<td>14.</td>
<td>15.</td>
</tr>
<tr>
<td>16.</td>
<td>17.</td>
<td>18.</td>
<td>19.</td>
<td>20.</td>
</tr>
</table>
</BODY>
</HTML>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询