我有一个html
表格,在其中一列中我有一个check-box
所以每个行都有一个checkbox
。
我有一个由onclick
触发的javascript函数
现在我需要的是针对单击复选框的特定行执行特定操作
例如。如果我单击第13行上的复选框,我希望能够对表格的第13行执行某些操作。我要做的某事是用另一个替换html元素
我试过并看到我可以使用document.getElementsByName
或document.getElementById
,但它使用name
或id
值。
但对于动态生成的表,我不知道如何做到这一点。我的意思是如何关联name
或id
来解决这个问题
解决这个问题的方法是什么?
答案 0 :(得分:7)
执行此操作的一种方法是以下
<tr>
<td>
<input type="checkbox" onClick='myOnClickHandler(event, this)' />
</td>
</tr>
-
function myOnClickHandler(evt, obj){
// here obj refers to that specific checkbox which was clicked
var row = obj.parentNode.parentNode; // this way you can access specific row that is clicked
}
答案 1 :(得分:4)
忽略所有其他盲目回答的人......
根据我对你的问题的理解,你在桌面上有一个onclick处理程序,你想要得到它发生的行。
在这种情况下,你会这样做:
yourtable.onclick = function(e) {
e|e=window.event;
var t = e.srcElement || e.target;
while(!t.tagName || t.tagName != "TR") t = t.parentNode;
// t is now the row that the click happened on
}
另一方面,如果你真的在每个复选框上都有一个onclick事件,那么......好吧,实际上你可以使用完全相同的代码。 ^ _ ^
答案 2 :(得分:0)
我不确定你是如何生成你的表的,但你可以做的一件事就是对我关心的单元格或行使用id,并在id中加入行号。例如,将第13行的id设置为“row_13”。然后在javascript(准确的onclick事件)中你可以解析13的id。或者更容易,将行号合并到复选框本身的id(复选框所在的行号),然后您不必使用javascript搜索复选框'parent。