Есть ли более эффективный способ, чем следующий, для выбора третьего родителя?
$(draggable).parent().parent().parent().attr('entityid')
Это должно быть быстрее, так как мы используем чистый 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
Если у вас есть идентификатор, класс или тэг, вы можете сделать $(draggable).parents(element). Но убедитесь, что он достаточно уникален, что вы получите только один элемент, так как parents() будет извлекать несколько элементов, если найден.
$(draggable).parents(element)
parents()