我有以下dom树:
<tr class="tomatch" id="123"></tr>
<tr>
<td>
<div>
<span class="matching"></span>
</div>
</td>
</tr>
我将$(this)
对象设置为.matching
元素,我必须从中获取.tomatch
元素。我怎么能这样做?
parent()
无法使用,我尝试使用.prev()
或prevUntil('.tomatch')
,但它也不起作用。与.closest('.tomatch')
和.parents('.tomatch')
相同。
我该怎么做?我必须在tr父级之前匹配第一个元素,因为这个结构是可重复的。
答案 0 :(得分:3)
.closest
和.parents
用于查找作为指定元素的祖先的元素,但您想要的元素是祖先的兄弟。因此,您需要分两步完成 - 首先转到祖先,然后从那里转到上一个元素。
$(".matching").click(function() {
console.log($(this).closest("tr").prev().attr('id'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr class="tomatch" id="123"></tr>
<tr>
<td>
<div>
<span class="matching">Click here</span>
</div>
</td>
</tr>
</table>