JS给页面添加标签的同时添加标签的onclick事件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS给页面添加标签的同时添加标签的onclick事件相关的知识,希望对你有一定的参考价值。

我要在页面中为表格的某一列的每个单元格动态的添加一个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>
参考技术A 应该是“事件的参数是动态的,用变量添加进去”这个你处理的不对。 参考技术B 无代码?无真相

Javascript 问题,给LI标签添加一个Onclick事件后,如何辨别点击了li中哪个元素?

<li onclick = 'clickLi()'>
<input type='checkbox' />
<a>This link.</a>
<p>Text</p>

</li>
----js-----
function clickLi()

//用户无论点击LI标签内什么地方都会回调此函数,请问在这里如何判断是点击了A标签,还是INPUT标签,或是其他标签?

参考技术A function clickLi(e)
//兼容ie 火狐 chrome

e = e || window.event;
e.target = e.target || e.srcElement;
alert(e.target.nodeName);
追问

方法不错,等下试试,非常感谢。

追答

好用的话 选我为最佳答案。

本回答被提问者和网友采纳
参考技术B <script language="javascript" type="text/javascript">
$(document).ready(function () $("#li1").children().click(function () clickLi(this); ) );
function clickLi(t)
alert($(t).attr("tagName"));

</script>

<li id="li1">
<input type='checkbox'/>
<a >This link.</a>
<p>Text</p>
</li>追问

我也用JQ,不过这样给每个子元素加一个事件函数效率是否太低了呢?

追答

我的jquery功底不好,只能想到这个办法了

以上是关于JS给页面添加标签的同时添加标签的onclick事件的主要内容,如果未能解决你的问题,请参考以下文章

简谈a标签与添加点击事件

给html的a标签添加 onclick事件

HTML中在a标签中添加onclick事件

Javascript 问题,给LI标签添加一个Onclick事件后,如何辨别点击了li中哪个元素?

JS事件委托应用场景

php怎么给按钮添加事件