我有一张html
桌子,在其中一列中我有一个check-box
.
所以每一行都有一个checkbox
. 我有一个由onclick
.
现在我需要对单击复选框的特定行做一些特定的事情。
例如,如果我单击第 13 行上的复选框,我希望能够对表格的第 13 行执行一些操作。我想做的事情是用另一个替换一个 html元素。
我已经尝试并看到我可以使用document.getElementsByName
ordocument.getElementById
但它使用 thename
或id
value。
但是对于动态生成的表,我不确定如何执行此操作。我的意思是如何关联name
或id
解决这个问题。
解决这个问题的方法是什么?
问问题
86 次
3 回答
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
}
于 2013-05-26T17:26:25.650 回答
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 事件,那么……好吧,实际上您可以使用完全相同的代码。^_^
于 2013-05-26T17:37:49.790 回答
0
我不确定您是如何生成表格的,但您可以做的一件事是为我关心的单元格或行使用 id,并将行号合并到 id 中。例如,将第 13 行的 id 设置为“row_13”。然后在 javascript(确切地说是 onclick 事件)中,您可以从 id 中解析出 13。或者更简单,将行号合并到复选框本身的 id 中(复选框所在的行号),然后您不必使用 javascript 查找复选框的父级。
于 2013-05-26T17:25:02.170 回答