Ответ 1
Просто потому, что я хороший парень! В будущем всегда убедитесь, что у вас есть код в вашем вопросе, или они скорее всего будут закрыты/опущены:/
Но вы бы хотели использовать цикл while()
, так как мы не знаем точное количество родителей, которые у нас есть
function getParents(el, parentSelector /* optional */) {
// If no parentSelector defined will bubble up all the way to *document*
if (parentSelector === undefined) {
parentSelector = document;
}
var parents = [];
var p = el.parentNode;
while (p !== parentSelector) {
var o = p;
parents.push(o);
p = o.parentNode;
}
parents.push(parentSelector); // Push that parentSelector you wanted to stop at
return parents;
}
Использование: возвращает массив из "родителей"
// 2nd param optional, bubbles up to document
getParents( document.getElementById('me') );
// get all parents starting from -me- up to ID -outerParent-
getParents( document.getElementById('me'), document.getElementById('outerParent') );