我循环遍历一组元素,然后我试图在循环中找到所述元素的一些特定子元素,但是我收到了错误。
我的代码:
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
做我需要的正确方法是什么?
答案 0 :(得分:2)
你可能想要
secondary_submenus = $(this).find('table.sm_wrapper td ul li .sm_wrapper2');
您收到错误的原因是您尝试将对象(this
)添加到字符串并将其用作选择器,因此
... 无法识别的表达:[object HTMLDivElement] ...
find()将要做的是从$(this)
的上下文中搜索传递的选择器中提到的元素的子项