获取最接近的未知ID

时间:2018-05-29 16:21:05

标签: javascript jquery

我试图让事情变得简单,但无法使其发挥作用。

HTML

mailNickname@default.domain

<div id="test">
    <p>
        Super <i>cool</i>
    </p>
</div>

我的想法非常简单:点击<div id="test"> <table> <tr> <td>Super <i>cool</i></td> </tr> </table> </div> 标记<i>父ID。正如你所看到的那样,它是直接父节点,有时它可以是来自上面13个节点的父节点。

我正在寻找console.logclosest()可能吗?

2 个答案:

答案 0 :(得分:2)

假设您尝试获取具有id属性的最近父元素,则可以将closest()与属性选择器一起使用:

&#13;
&#13;
$('i').click(function() {
  var id = $(this).closest('[id]').prop('id');
  console.log(id);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="test-01">
  <p>
    Super <i>cool</i>
  </p>
</div>

<div id="test-02">
  <table>
    <tr>
      <td>Super <i>cool</i></td>
    </tr>
  </table>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:2)

  

我正在寻找closest()parents()可能吗?

你走在正确的轨道上。如果i没有id,则:

var test = $(this).closest("[id]");

...其中说,找到具有this属性的最接近的元素(以id开头)。

如果i可能有id(您还没有展示过)并且您不想要它,那么您可能需要

var test = $(this).parents("[id]").first();

var test = $(this).parent().closest("[id]");