我可以使用Jquery nearest()创建一个包含多个元素的选择器吗?

时间:2012-03-21 12:52:35

标签: javascript jquery jquery-selectors closest

我有点击事件的监听器,我需要从中排除一些元素。

现在我的列表正在增长,所以我正在寻找一种更好的方法来“捆绑”选择器中的多个元素。

这就是我所拥有的:

$(document).on('click tap', function(event) {               
    if ($(event.target).closest('div:jqmData(panel="popover")').length > 0 ||
        $(event.target).closest('div.pop_menuBox').length > 0 ||
        $(event.target).closest('.toggle_popover').length > 0 ) ||
        $(event.target).closest('.ui-selectmenu').length > 0 {
          return; 
    }
    // do stuff
});

有没有更好的方法来排除这些元素?

感谢您的帮助!

3 个答案:

答案 0 :(得分:23)

您可以指定CSS选择器,这意味着:您可以使用逗号指定两个或更多选择器:

if($(event.target).closest('div:jqmData(panel="popover"), div.pop_menuBox, .toggle_popover, .ui-selectmenu').length > 0) {
    return; 
}

答案 1 :(得分:3)

使用逗号。

if ($(event.target)
     .closest('div:jqmData(panel="popover"), div.pop_menuBox, .toggle_popover, .ui-selectmenu').length > 0) {
     return; 
}

答案 2 :(得分:0)

根据jquery文档,您可以为最近的http://api.jquery.com/closest/

提供多个选择器