我试图让事情变得简单,但无法使其发挥作用。
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.log
或closest()
可能吗?
答案 0 :(得分:2)
假设您尝试获取具有id
属性的最近父元素,则可以将closest()
与属性选择器一起使用:
$('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;
答案 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]");