javascript - 每次我点击 .approvers > a 时我都无法获取 tr id 名称

标签 javascript jquery

我有这个代码

<tr class="job-order__row" id="accounting" style="display:none;">
  <td>1</td>
  <td>Doe</td>
  <td>John</td>
  <td>Accounting Personnel</td>
  <td>
    <div class="actions pull-right approvers">
      <a href="#"><i class="fa fa-close" title="remove approvers"></i></a>
    </div>
  </td>
</tr>
<tr class="job-order__row" id="hr" style="display:none;">
  <td>2</td>
  <td>Doe</td>
  <td>Luke</td>
  <td>HR Personnel</td>
  <td>
    <div class="actions pull-right approvers">
      <a href="#"><i class="fa fa-close" title="remove approvers"></i></a>
    </div>
  </td>
</tr>
<tr class="job-order__row" id="crm" style="display:none;">
  <td>3</td>
  <td>Doe</td>
  <td>Mark</td>
  <td>CRM Personnel</td>
  <td>
    <div class="actions pull-right approvers">
      <a href="#"><i class="fa fa-close" title="remove approvers"></i></a>
    </div>
  </td>
</tr>

和 javascript/jquery 代码

$(document).on('click', '.approvers > a', function(e) {
    e.preventDefault();
    var $id = $('.approvers > a').parents('tr').attr('id');
    $('#'+$id).hide();
  });

问题是,当我尝试单击此处的任何 .approvers > a 这部分时 代码中的$('.approvers > a').parents('tr').attr('id');仅返回Id名称"crm"

我想要做的是每次点击 .approvers > a 我都会得到 tr id 名称。

有人有同样的问题吗?

谢谢

最佳答案

@Tushar 所说的是使用 $(this) 来引用单击的元素,使用 closest() 来获取第一个父元素。

$(document).on('click', '.approvers > a', function(e) {
    e.preventDefault();
    var $id = $(this).closest('tr').attr('id');
    alert($id)
    $('#'+$id).hide();
  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr class="job-order__row" id="accounting" style="">
  <td>1</td>
  <td>Doe</td>
  <td>John</td>
  <td>Accounting Personnel</td>
  <td>
    <div class="actions pull-right approvers">
      <a href="#"><i class="fa fa-close" title="remove approvers"></i>click</a>
    </div>
  </td>
</tr>
<tr class="job-order__row" id="hr" style="">
  <td>2</td>
  <td>Doe</td>
  <td>Luke</td>
  <td>HR Personnel</td>
  <td>
    <div class="actions pull-right approvers">
      <a href="#"><i class="fa fa-close" title="remove approvers"></i>click</a>
    </div>
  </td>
</tr>
<tr class="job-order__row" id="crm" style="">
  <td>3</td>
  <td>Doe</td>
  <td>Mark</td>
  <td>CRM Personnel</td>
  <td>
    <div class="actions pull-right approvers">
      <a href="#"><i class="fa fa-close" title="remove approvers"></i>click</a>
    </div>
  </td>
</tr>
</table>

关于javascript - 每次我点击 .approvers > a 时我都无法获取 tr id 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43538047/

相关文章:

javascript - Angular : how to get url of a resource action?

jquery - 表单输入中的掩码数字仅显示两位小数但保存原始值

javascript - jQuery 将一个元素的 css 值设置为另一个元素

jquery - 如何使 select .change 事件在失去焦点之前不触发(最好使用 jquery)?

javascript - 悬停时CSS缩放图像

javascript - 自动关闭带有要下载文件的弹出窗口

javascript - Angular : How to search in nested array?

javascript - 如何使用 Angularjs 将取消选中添加到 ng Repeat Checkbox 中的最后一个元素?

javascript - 奇怪的 : CSS transformated element JS "click through"

javascript - jQuery 仅针对 li 标签,其中元素具有特定的类