2015-06-05 4 views
0

Я прокручиваю набор элементов, а затем пытаюсь найти в нем определенные дочерние элементы указанного элемента, но я получаю сообщение об ошибке ,Ошибка jQuery: ошибка синтаксиса, нераспознанное выражение: [object HTMLDivElement]

Мой код:

var submenu_height; 
var secondary_submenus; 
var secondary_submenu_height; 

// Get the submenus 
var submenus = $('#main section.top nav > ul > li > .sub_menu'); 

// Now loop through each submenu 

submenus.each(function(i, element) { 

    // Get height of submenu 
    submenu_height = $(this).height(); 

    // Reset our secondary submenu height 
    secondary_submenu_height = 0; 

    // Get submenus of this submenu 
    secondary_submenus = $(this + ' table.sm_wrapper td ul li .sm_wrapper2'); 



}); 

Проблема заключается в этой строке:

secondary_submenus = $(this + ' table.sm_wrapper td ul li .sm_wrapper2'); 

Я попытался с помощью element, а также this но ни работал. Ошибка, которую я получаю:

Error: Syntax error, unrecognized expression: [object HTMLDivElement] table.sm_wrapper td ul li .sm_wrapper 

Каков правильный способ делать то, что мне нужно?

ответ

2

Вы, вероятно, хотите

secondary_submenus = $(this).find('table.sm_wrapper td ul li .sm_wrapper2'); 

Причина вы получаете сообщение об ошибке, потому что вы пытаетесь добавить объект (this) в строку и использовать его в качестве селектора, следовательно

...unrecognized expression: [object HTMLDivElement]...

Что делать find() будет искать детей из контекста $(this) для упомянутых элементов в переданном селекторе

+0

Ahhhh, да, я думал, что это была моя проблема. Спасибо за код о том, как это сделать. – Brett

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