jQuery:选择祖父母

ane*_*yzm 49 jquery jquery-selectors

有没有更好的方法在jQuery中选择祖父母元素以避免这种情况?

$(this).parent().parent().parent().parent().parent().children(".title, .meta").fadeIn("fast");
Run Code Online (Sandbox Code Playgroud)

谢谢.

Nei*_*ken 55

您可以使用parents()匹配父项的方法与选择器

http://api.jquery.com/parents/

或者,如果您使用1.4,则有一种新parentsUntil()方法

http://api.jquery.com/parentsUntil/


小智 24

除此之外parents(),正如他们所说,你也应该看看closest().阅读那里的文档中的比较,但它的主要区别在于它只搜索一个结果,它包括$(this)搜索内容(如果你不够具体,可以得到你正在搜索的东西).利弊.


小智 5

我写了这个简单的插件,因为我觉得我有一个明确的类选择,在某处给我错误.选择祖父母似乎比$().parents()这个特殊情况更直接.

好吧,我用了一次然后意识到我确实有拼写错误.不确定它真的有用.$('myelem').gparent(2);让你成为'myelem'的祖父母.

(function( $ ){
$.fn.gparent = function( recursion ){
    if( recursion == undefined ) recursion = 2;
    if(typeof(recursion) == "number"){
        recursion = parseInt( recursion );
        if( recursion > 0 ){
            gparent_holder = $(this);
            for(var gparent_i = 0; gparent_i < recursion; gparent_i++){
                gparent_holder = gparent_holder.parent();
            }
            return gparent_holder;
        }
        else return false;
    }
    else return false;
}
})( jQuery );
Run Code Online (Sandbox Code Playgroud)