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

jQuery Error: Syntax error, unrecognized expression: [object HTMLDivElement]

本文关键字:错误 表达式 object HTMLDivElement 语法 jQuery 识别      更新时间:2023-09-26

我正在循环一组元素,然后我试图在循环中找到一些特定的子元素,但是我得到了一个错误。

我代码:

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

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

您可能需要

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

你得到一个错误的原因是因为你试图添加一个对象(this)到一个字符串,并使用它作为一个选择器,因此

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

find()将从$(this)的上下文中搜索传递的选择器

中提到的元素的子元素