テーブルに単一のリスナーを配置できます。
<table onmouseover="showId(event);" ...>
次に、関数で、マウスオーバーがテーブルにバブルアップする TD 要素の ID を表示します。
function showId(evt) {
var element = evt && (evt.target || evt.srcElement);
if (element && element.tagName && element.tagName.toLowerCase() == 'td') {
console.log(element.id);
}
}
リスナーを動的にアタッチすることはできますが、古いブラウザーの場合はブラウザーのちょっとした癖に対処する必要がある場合があります。たとえば、以下は使用中のどのブラウザーでも機能します (テーブルにはリスナーをアタッチするための ID がありますが、ID を必要としない方法は他にもあります)。
<table id="t0">
...
window.onload = function() {
var table = document.getElementById('t0');
table.onmouseover = showId;
}
function showId(evt) {
evt = evt || window.event;
var element = evt && (evt.target || evt.srcElement);
if (element && element.tagName && element.tagName.toLowerCase() == 'td') {
alert(element.id);
}
}