I have a table with id “tbl” and it has 2 rows and 3 cols. Each cell (td) has an explicitly defined id. Also, the table has an onclick event that calls a function foo(). The onclick() would be generated whenever any cell is clicked.
The table tag is:
< table id="tbl" width="80%" height="20%" onclick="javascript: foo()" >
I also tried javascript:foo(this)
I want to find out the id of the table cell that was clicked.
I have tried the following JavaScript:
function foo(e)
{
var sender = (e && e.target) || (window.event && window.event.srcElement);
alert("Sender" + sender.id);
}
This works great in Google Chrome and IE, but not in Firefox. In Firefox, sender is undefined. How to get the caller cell in Firefox?
Advertisement
Answer
Firstly, remove javascript: from the onclick attribute. You’re confusing this with javascript in the href attribute of a link. In Javascript code, javascript: would create a label named “javascript”.
Other than that, foo(event) should work correctly with your final JavaScript code sample. The reason it doesn’t work in Firefox but does in Chrome and IE is; they both support the global event object, window.event (which is evaluated when your e.target yields undefined, because this is an element which will not have a target property). Firefox doesn’t support the global event object.
Further reading: