jQuery错误:语法错误,无法识别的表达式:[object HTMLDivElement]

时间:2015-06-05 16:48:36

标签: javascript jquery each

我循环遍历一组元素,然后我试图在循环中找到所述元素的一些特定子元素,但是我收到了错误。

我的代码:

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

做我需要的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

你可能想要

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

您收到错误的原因是您尝试将对象(this)添加到字符串并将其用作选择器,因此

  

... 无法识别的表达:[object HTMLDivElement] ...

find()将要做的是从$(this)的上下文中搜索传递的选择器中提到的元素的子项