jQuery:如果所选元素 $(this) 的父元素的类名为“last”

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/17068838/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-26 18:22:34  来源:igfitidea点击:

jQuery: If the selected element $(this) has a parent with a classname of 'last'

jquerydomtraversaltree-traversal

提问by Iamsamstimpson

I must be missing something quite important, I have been using .parent().parent().parent().. etc to traverse down the DOM and .next().next() to traverse up the DOM.

我一定遗漏了一些非常重要的东西,我一直在使用 .parent().parent().parent().. 等来遍历 DOM 和 .next().next() 来遍历 DOM。

I know this is wrong and that I need something more reliable, I need a selector that will traverse from the clicked element $(this) down the DOM to see if the element clicked is within an element with a class of "last".

我知道这是错误的,我需要更可靠的东西,我需要一个选择器,它会从单击的元素 $(this) 向下遍历 DOM,以查看单击的元素是否在具有“last”类的元素内。

div.last > div > table > tr > td > a[THE ITEM CLICKED is in the element last]

and

div > div > table > tr > td > a[THE ITEM CLICKED is not in the element last]

then if the result has length

那么如果结果有长度

var isWithinLastRow = [amazingSelector].length;

do something else in this case.

在这种情况下做其他事情。

回答by Aditya Singh

Try this out:-http://jsfiddle.net/adiioo7/PjSV7/

试试这个:- http://jsfiddle.net/adiioo7/PjSV7/

HTML:-

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:-

JS:-

jQuery(function($){
    $("a").on("click",function(){
       if($(this).closest(".last").length>0)
       {
           alert("Clicked anchor with div parent class as last");
       }
    });
});

回答by lonesomeday

Your question is a little hard to understand. You want to check if the element clicked has an ancestor element with the class last, yes?

你的问题有点难以理解。您想检查单击的元素是否具有 class 的祖先元素last,是吗?

If so, you can do so with $.fn.parents:

如果是这样,你可以这样做$.fn.parents

if ($(this).parents('.last').length) {
    // element has an ancestor element with the class "last"
}

回答by Mohammad Adil

You can do this -

你可以这样做 -

if($(this).closest(".last").length > 0) {
   alert("it's inside");
}

回答by ?????

You can use .closest()

您可以使用.closest()

var isWithLastRow = $(this).closest('div.last').length