Как найти, какой элемент стоит выше в иерархии DOM? - PullRequest
1 голос
/ 27 января 2012

Я имею в виду, как я могу найти, какой из двух элементов принадлежит узлу, ближайшему к «документу» или «окну»?что выше в иерархии?

РЕДАКТИРОВАТЬ это выполняет работу:

function gerarchia(elem) { 
  var i=0; 
  while (elem.parentNode) { 
    elem = elem.parentNode; 
    i++; 
  } 
  return i; 
} 

Ответы [ 3 ]

1 голос
/ 27 января 2012

Возможно, есть и лучший способ, но подход грубой силы, состоящий в простом повторном вызове parentNode со счетчиком, пока вы не нажмете корень, должен работать. Предполагая, что ваш документ не является смехотворно глубоким, он должен быть относительно быстрым.

1 голос
/ 27 января 2012

Попробуйте .parents().length, вот так:

if ( $(element1).parents().length > $(element2).parents().length ) {
  // lower
}
else {
  // higher
}
0 голосов
/ 27 января 2012

Если у вас есть jQuery, вы можете просто сделать это, чтобы найти, например, первый элемент <li>:

$('li:first')
...