Rails 3 jQuery:如何提醒td的id

时间:2012-03-15 17:57:12

标签: javascript html ruby-on-rails-3 jquery-ui coffeescript

我有一个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太可怕了,所以感谢任何帮助!

2 个答案:

答案 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 }}