【问题标题】:jquery parent select - more efficient wayjquery parent select - 更有效的方法
【发布时间】:2015-06-17 16:45:08
【问题描述】:

是否有比以下选择第三亲更有效的方法?

$(draggable).parent().parent().parent().attr('entityid')

【问题讨论】:

    标签: jquery css-selectors


    【解决方案1】:

    这应该会更快,因为我们使用的是纯 DOM,而不是重复地将父对象附加到 jQuery 对象。

    jQuery.fn.getParent = function(num) {
        var last = this[0];
        for (var i = 0; i < num; i++) {
            last = last.parentNode;
        }
        return jQuery(last);
    };
    // usage:
    $('#myElement').getParent(3);
    

    工作演示:http://jsbin.com/ecoze

    【讨论】:

    • 我非常喜欢这种方法,我也想建议使用 parentNode,但你打败了我。
    • 感谢马修和伊戈尔的客气话。
    • 同样可以通过$("#myElement").parents(":eq(3)")实现
    【解决方案2】:

    如果你有一个 id、class 或 tagname 可以使用$(draggable).parents(element)。但请确保它足够独特以至于您只能获得一个元素,因为parents() 将在找到多个元素时检索多个元素。

    【讨论】:

    • 谢谢 - 以下符合我的要求:$(draggable).parents('.entity').attr('entityid')
    猜你喜欢
    • 2011-12-15
    • 2014-02-11
    • 2011-01-16
    • 2012-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多