jQuery 父元素选择器 - 更高效的方法

5

有没有比以下方法更有效的方式来选择第三个父元素?

$(draggable).parent().parent().parent().attr('entityid')
2个回答

9

我们使用纯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,但你比我先说了。 - Igor Zinov'yev
感谢你们的赞美,Matthew和Igor。 - moff
5
可以使用$("#myElement").parents(":eq(3)")实现相同的效果。 - Anand Chitipothu

2
如果您有一个id、class或标签名可以使用,您可以使用$(draggable).parents(element)。但请确保它足够唯一,以便只获取一个元素,因为如果找到多个元素,parents()会检索多个元素。

谢谢 - 以下内容符合我的要求:$(draggable).parents('.entity').attr('entityid') - Phill Duffy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接