Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Декомпозиция строки (https://javascript.ru/forum/misc/57027-dekompoziciya-stroki.html)

Валерий1996 15.07.2015 21:11

Декомпозиция строки
 
Помогите декомпозировать строку:

здесь просто ищем тег ul который в 5 вложении (то есть в 5 тегах) правельно ведь?
elem = $(this).parent('div.sub-menu-scroll').parent('div').children('div.content').children('div').children('ul');

Zend 15.07.2015 21:16

parent - ищем родителя (поднимаемся)
children - ищем потомка

в общем да. но тот кто это написал - рукожоп

Валерий1996 15.07.2015 21:23

Цитата:

Сообщение от Zend (Сообщение 379849)
parent - ищем родителя (поднимаемся)
children - ищем потомка

в общем да. но тот кто это написал - рукожоп

А как проще можно ?

ruslan_mart 15.07.2015 22:19

Цитата:

Сообщение от Валерий1996
А как проще можно ?

Как минимум так:

$(this).parent('div.sub-menu-scroll').parent('div').find('div.content ul');


Хотя наверное можно и ещё проще, в jQuery не особо силён.

Валерий1996 15.07.2015 22:29

Спасибо

join 15.07.2015 22:31

$(this).closest('body').find('div.content ul');

laimas 15.07.2015 22:36

Цитата:

Сообщение от join
$(this).closest('body')


Зачем же body, если ближайший будет DIV?

$(this).closest('div').find('div.content ul');

join 15.07.2015 22:57

Цитата:

Сообщение от laimas (Сообщение 379888)
Зачем же body, если ближайший будет DIV?

$(this).closest('div').find('div.content ul');

Верстки нет, поэтому. Прописал от начала, от(body). Штоб не промахнуться. Ищем с самого верха.

laimas 15.07.2015 22:58

Цитата:

Сообщение от join
Ищем с самого верха.

Накладно будет.

join 15.07.2015 23:09

Цитата:

Сообщение от laimas (Сообщение 379895)
Накладно будет.

Если там задействован подгруз тегов через ajax - то в самый раз будет.

laimas 15.07.2015 23:25

Ну это если, к тому же подгружается динамически, это совсем не означает, что ближе чем body родителя нет. )

А вообще из кода видна ветвь - текущий.родитель.родитель.. .


Часовой пояс GMT +3, время: 19:29.