如何将文本从视图传递到 javascript

How to pass text from view to javascript

您好,我对 RailsJavascript 有疑问。这是我的 table 视图。

<table>
  <thead>
    <tr>
      <th>No</th>
      <th>Name</th>
    </tr>
  </thead>
  <tbody>
      <tr id="adminrow">
        <td>
          1
        </td>
        <td>
          <a href="#" id="select_name">John</a>
        </td>
      </tr>
      <tr id="adminrow">
        <td>
          2
        </td>
        <td>
          <a href="#" id="select_name">Alex</a>
        </td>
      </tr>
      <tr id="adminrow">
        <td>
          3
        </td>
        <td>
          <a href="#" id="select_name">Paul</a>
        </td>
      </tr>
  </tbody>
</table>

我的JS

$('#select_name').click(function(event){
    var username = $("#select_name").text();
    console.log(username);
});

我的 table 中有很多名字,但 JS 在控制台中打印了名字。如何将 table 中的每个名称打印到控制台?

您正在使用相同的 select_name ID 在每个循环中创建 N links(按用户数)。你javascript迷茫了,选哪个。尝试将用户 ID 添加到您的 html select_name id 并相应地调整您的 javascript。你的另一个 id adminrow.

也一样

或者只需将您的 select_name 更改为 class 而不是 id:

 ....
 %a{:href=>"#", :class=>"select_name"}=u.firstname
 ....
 $('.select_name').click(function(event){ ....

好的,我附上完整的代码给你。对我来说它工作得很好。例如。单击相应的 link:

后仅打印名称
<table>
<thead>
  <tr>
    <th>No</th>
    <th>Name</th>
  </tr>
</thead>
<tbody>
    <tr class="adminrow">
      <td>
        1
      </td>
      <td>
        <a href="#" class="select_name">John</a>
      </td>
    </tr>
    <tr class="adminrow">
      <td>
        2
      </td>
      <td>
        <a href="#" class="select_name">Alex</a>
      </td>
    </tr>
    <tr class="adminrow">
      <td>
        3
      </td>
      <td>
        <a href="#" class="select_name">Paul</a>
      </td>
    </tr>
</tbody>
</table>

<script type="text/javascript">
  $('.select_name').click(function(event){
    var username = $(this).text();
    console.log(username);
  });
</script>