首页 > js获取某元素之外,not()不行

js获取某元素之外,not()不行

点击某个元素时,运行某js,点击这个元素之外结束,如果如下写还是没有排除这个元素:

$('body').not('.a')

jQuery这样解释.not:

返回不带有类名 "intro" 的所有 <p> 元素

$("p").not(".intro")

那么上面就翻译成:

$('body').not('.a')

返回不带有类名 “a” 的所有<body>元素

还有什么方法获取除.a之外的元素?


一个页面一般都只有一个body标签, 是不是不包含class=a 的body标签 所以获取不到吧


$('div:not(.a)')


试试

$('*').not('.a');

为什么要以body为参考呢,换个div不好吗?一般没有另外的body吧。


$("body").not(".a")
这个表达式的意思不是说返回所有body下的元素中不带有".a"的元素,not是对于前一个集合的二次筛选,意思是所有body元素中不是".a"的元素。


看你的描述,可以通过这样的方法折衷实现。
$('body').click(function(e) {
    var _con = $('.a '); // 设置目标区域
    if (!_con.is(e.target) && _con.has(e.target).length === 0) { 
    }
});

$(document).on('click,function(){
$(this).hasClass('a')?console.log(1):console.log(2);
})
这样应该能达到你想要的效果

【热门文章】
【热门文章】