我有一个很好的老式HTML表。每个覆盖范围都有其唯一的ID。我想用JavaScript实现的是,当我在每行上点击一个链接时,这个ID就存储在一个变量中。
可能听起来很容易,我是JS的新手,我无法弄清楚到底。有人可以帮帮我吗?
谢谢!
答案 0 :(得分:0)
您点击的Onclick事件可以调用类似
的函数function RecordClick( elem ) {
mylocalVar = elem.id;
}
说 的onclick = “RecordClick(本);”
答案 1 :(得分:0)
在服务器端创建表时,将其放在HTML中(根据我的理解情况):
...
<tr>
<td>
<a href="...">Some link name</a>
</td>
</tr>
...
那么为什么不这样做:
<script>
var rowID = -1;
</script>
...
<tr>
<td>
<a href="javascript: rowID = 111; void(0);">Some link name</a>
</td>
</tr>
...
这不是最好的方法,但它完成了工作。如果您使用的是像jQuery这样的库,那么您可以采用完全不同的方式并使用闭包。
答案 2 :(得分:0)
你必须为此采取一个全局变量。 U可以像 -
一样进入头部var idHolder;
现在在onclick处理程序表中,你调用了一个像
这样的函数table onclick =“extractId(obj)”&gt;
函数定义可能是这样的 -
function extractId(var obj) { idHolder = obj.Id; }
如果有任何问题回复,这将是您的工作。
答案 3 :(得分:0)
由于click
事件冒泡DOM,您可以通过挂钩表的click
事件,然后确定单击哪一行来完成此操作。这通常称为“事件委托”。这样的事情(live copy):
// Hook click on the table
document.getElementById('theTable').onclick = function(e) {
var element;
// Handle IE vs. standards
e = e || window.event;
// Find out what was clicked (more IE vs. standards)
element = e.target || e.srcElement;
// Find the row
while (element && element.tagName !== "TR") {
element = element.parentNode;
}
// Found it?
if (element) {
// Yes, remember the ID and show it
targetVariable = element.id;
display("You clicked row " + targetVariable);
}
};
非主题:如果您使用jQuery,Prototype,{{3}等库,则可以更轻松地使用批次 },YUI或Closure。例如,使用jQuery的上述代码如下所示:
$('#theTable').click(function(event) {
var target = $(event.target).closest('tr');
if (target.length > 0 ) {
targetVariable = target[0].id;
display("You clicked row " + targetVariable);
}
});
或使用其中一项新功能:
$('#theTable').delegate('tr', 'click', function(event) {
targetVariable = this.id;
display("You clicked row " + targetVariable);
});