2013-05-30 10 views
-3

jstree выглядит примерно так:Как выбрать родителя родителя?

<ul> 
    <li id ="head" ><a href="#">TITLE</a> 
     <ul> 
      <li id="body"><a href="#">BODY</a> 
       <ul> 
        <li id="foot"><a href="#">FOOTER</a> 
        </li> 
       </ul> 

      </li> 
     </ul> 
    </li> 
</ul> 

В основном это дерево с глубиной 3.

Я просто хочу знать, если его можно получить доступ к идентификатору «head» от ид «foot»

что-то вроде

   jQuery(#foot).parent().parent(); 
or  
      jQuery(#foot).parent().parent.attr("id"); 

или что-то подобное

ответ

0

Вы всегда можете использовать parents метод:

$('#foot').parents('#head'); 

Хотя, так как головка имеет идентификатор, вы можете просто посмотреть его прямо: $('#head')

0

вас холодной записи:

$('#' + $('#foot').parent().parent().parent().parent().prop('id')).do something with head 

Обязательно прочтите информацию о разнице между .prop() & .attr()

0

Предполагая, что это единственные <ul> и <li> элементы на странице.

$('#foot').parents('li:last').attr('id'); 

должно дать вам id который head.

parents() функция перечисляет родителей элемента от ближайшего к самому дальнему. Таким образом, последний элемент li будет с идентификатором head.

Fiddle here.

2

идентификаторы должны быть уникальными в вашей страницы, так что вы не должны иметь более одного элемента с тем же ID, и, следовательно, вы должны быть в состоянии использовать только $('#head'), чтобы выбрать его.

В вашем случае, я полагаю, вы хотите использовать класс «голова», который может появляться много раз в вашем списке.

Самый простой способ добиться этого - использовать jQuery closest(). Он находит первый родительский соответствующий заданный селектор.

$('#foot1').closest('.head') 

http://api.jquery.com/closest/

+0

'находит первое родительское соответствие заданной selector' - обратите внимание, что' ближайший() 'начинает смотреть на текущий элемент, так что это не обязательно первый ** родитель ** – Ian

+0

Если структурированы правильно это будет паниковать, хотя, в этом и дело. – Gabe

+0

@ Я, вы предлагаете, чтобы ближайший мог найти себя? – ZorleQ

Смежные вопросы