我必须遗漏一些非常重要的东西,我一直在使用.parent()。parent()。parent().. etc来遍历DOM和.next()。next()来遍历DOM。
我知道这是错误的并且我需要更可靠的东西,我需要一个选择器,它将从点击的元素$(this)遍历DOM,看看点击的元素是否在一个类为“last”的元素中”
div.last > div > table > tr > td > a[THE ITEM CLICKED is in the element last]
和
div > div > table > tr > td > a[THE ITEM CLICKED is not in the element last]
然后如果结果有长度
var isWithinLastRow = [amazingSelector].length;
在这种情况下做其他事情。
答案 0 :(得分:18)
<强> HTML: - 强>
<div class="last">
<div>
<table>
<tr>
<td>
<a>Test</a>
</td>
</tr>
</table>
</div>
</div>
<div>
<div>
<table>
<tr>
<td>
<a>Test</a>
</td>
</tr>
</table>
</div>
</div>
<强> JS: - 强>
jQuery(function($){
$("a").on("click",function(){
if($(this).closest(".last").length>0)
{
alert("Clicked anchor with div parent class as last");
}
});
});
答案 1 :(得分:5)
你的问题有点难以理解。您想检查单击的元素是否具有类last
的祖先元素,是吗?
如果是这样,您可以使用$.fn.parents
:
if ($(this).parents('.last').length) {
// element has an ancestor element with the class "last"
}
答案 2 :(得分:2)
你可以这样做 -
if($(this).closest(".last").length > 0) {
alert("it's inside");
}
答案 3 :(得分:1)
您可以使用.closest()
var isWithLastRow = $(this).closest('div.last').length