1

我四处搜索,实际上从 Stackoverflow 上类似的另一个问题中得到了帮助,但是我似乎无法让它工作。当用户点击它时,我正在尝试输出父单元格 ID。HTML:

<table>
<tr>
<td class='test' id='1'><img src='images/dog.gif'/></td>
<td class='test' id='2'><img src='images/cat.gif'/></td>
<td class='test' id='3'><img src='images/mouse.gif'/></td>
<td class='test' id='4'><img src='images/human.gif'/></td>
</tr>

JS:

$('.test').on('click', 'td', function(e)
{ alert(this.id); })

有什么帮助吗?另外我将如何在页面上将其显示为文本而不是警报?

谢谢

4

2 回答 2

2

这里不需要使用事件委托,也应该从元素的静态父元素之一委托事件,而不是元素本身,试试这个:

$(document).ready(function() { // when DOM is ready
    $('td.test').click(function(e) { 
       alert(this.id); 
    })
})

如果要将值设置为另一个元素的文本内容,可以使用text方法:

$('#element').text(this.id);
于 2013-02-19T22:09:22.810 回答
0

您可以在当前 html 的末尾添加一个 div,如下所示:

<table>
<tr>
<td class='test' id='1'><img src='images/dog.gif'/></td>
<td class='test' id='2'><img src='images/cat.gif'/></td>
<td class='test' id='3'><img src='images/mouse.gif'/></td>
<td class='test' id='4'><img src='images/human.gif'/></td>
</tr>
<div id='output'></div>

并将您的警报更改为

$('#output').append(this.id + '<br>');

现在,这将在您的 div 中创建一行,其中包含您单击的单元格的 id。将此与 undefined 对事件处理程序的更改结合起来,一切就绪。

于 2013-02-19T22:19:07.313 回答