我有一个3x3的td表,每个表都有id(id ='a1'... id ='c3')。我希望能够点击9 td中的任何一个并提醒该td的id。
这是我的Coffeescript(在资产管道中)
$(document).ready ->
$("td").click ->
alert(#I would like to alert the id of whichever of the 9 td cell's have been clicked on)
这是我的index.html.erb
<table>
<tbody>
<tr>
<td id='a1'>A1</td>
<td id='b1'>B1</td>
<td id='c1'>C1</td>
</tr>
<tr>
<td id='a2'>A2</td>
<td id='b2'>B2</td>
<td id='c2'>C2</td>
</tr>
<tr>
<td id='a3'>A3</td>
<td id='b3'>B3</td>
<td id='c3'>C3</td>
</tr>
</tbody>
</table>
我对JS太可怕了,所以感谢任何帮助!
答案 0 :(得分:2)
$('td').click: (e)->
alert $(@).id
在CoffeeScript中相同
此外,使用data- *属性存储带有html元素的用户数据非常容易,例如:
<td data-id="42"></td>
使用jQuery data方法获取此ID很容易,如下所示:
var id = $('td').data('id');
答案 1 :(得分:2)
首先,使用jQuery on会比将click
处理程序附加到每个td
产生更好的效果,尤其是如果您有很多td
s:
$('table').on 'click', 'td', (event) ->
# event.currentTarget is the td which was clicked
alert event.currentTarget.id
event.currentTarget
将是一个DOM元素对象,因此每个属性都可以作为对象的属性使用。引用$(this).id
的其他答案是错误的,因为$(this)
(或$(event.currentTarget)
)是jQuery对象,因此attr
方法可以使用这些属性:{{1 }}