Предполагая, что вы хотите найти глубину ребенка относительно какого-либо произвольного предка.
function depth(parent, descendant) {
var depth = 0;
var el = $(descendant);
var p = $(parent)[0];
while (el[0] != p) {
depth++;
el = el.parent();
}
return depth;
}
// Example call:
depth(".mainContent", "li")
Полное решение должно обрабатывать случай, когда указанный родитель не является предком потомка.
В качестве альтернативы, и только если вы поддерживаете ES5 и выше, работая непосредственно с узлами DOM может устранить зависимость от JQuery:
function depth(parent, descendant) {
var depth = 0;
while (!descendant.isEqualNode(parent)) {
depth++;
descendant = descendant.parentElement;
}
return depth;
}
// Example call:
depth(document.querySelector('.mainContent'), document.querySelector('li'))
Вы спрашиваете, как найти глубину ребенка в родительском, учитывая оба? Если это так, это так же просто, как итерация через всех родителей ребенка, пока вы не нажмете желаемого родителя и не сохраните счет. –