JQuery родительский выбор - более эффективный способ - PullRequest
4 голосов
/ 10 июля 2009

Есть ли более эффективный способ, чем следующий, для выбора третьего родителя?

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

Ответы [ 2 ]

8 голосов
/ 10 июля 2009

Это должно быть быстрее, так как мы используем чистый 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

2 голосов
/ 10 июля 2009

Если у вас есть идентификатор, класс или тэг, вы можете сделать $(draggable).parents(element). Но убедитесь, что он достаточно уникален, что вы получите только один элемент, так как parents() будет извлекать несколько элементов, если найден.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...