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

Can I create a selector with multiple elements using Jquery closest()

本文关键字:包含多 一个 元素 选择器 创建 可以使 Jquery closest 我可以      更新时间:2023-09-26

我有一个用于click事件的侦听器,我需要从中排除一些元素。

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

这就是我所拥有的:

$(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
});

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

谢谢你的帮助!

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

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

使用逗号。

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

根据jquery文档,您可以为最接近的对象提供多个选择器:http://api.jquery.com/closest/