jquery检查元素是否为X或元素的父元素是否为X - 是否可以更简单地完成?

时间:2014-06-13 12:28:39

标签: javascript jquery jquery-selectors coffeescript

这是我的coffeescript,我跟踪所有身体点击:

 $('body').on 'click', (e) ->
        if  not $(e.target).hasClass('notification') and $(e.target).parents('td.notification').length != 1
            $('a.notification-link').popover('hide')

根据js2coffe它应该是:

$('body').on('click', function(e) {
  if (!$(e.target).hasClass('notification') && $(e.target).parents('td.notification').length !== 1) {
    return $('a.notification-link').popover('hide');
  }
});

我能以某种方式比这次检查更简单吗?

1 个答案:

答案 0 :(得分:1)

正如.closest()的jQuery doc中所述:

  

对于集合中的每个元素,通过测试元素本身并遍历DOM树中的祖先来获取与选择器匹配的第一个元素。

因此,只需检查班级notification即可:

if($(e.target).closest('.notification').length === 0)...