微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在jquery选择器路径中添加异常的最佳方法

假设我想绑定所有项目

#mainDiv .user

除了

#mainDiv #exception .user

我能想到

$('#mainDiv .user').bind('event',function(){
    if($(this).parents('#exception').length>0){}else{
       // do stuff;   
    }

});

要么:

$('#mainDiv :not('#exception').find('.user').bind('event',function(){
    if($(this).parents('#exception').length>0){}else{
       // do stuff;   
    }

});

什么是更好的?

解决方法

我可能会建议改为

$('#mainDiv .user').not('#mainDiv #exception .user').bind('event',function()
{
    //do stuff
});

not()函数接受以前存在的jquery集,并从中删除符合作为参数传入的选择器的元素.

预先过滤池比使用选择器和if语句更清晰,更高效(可能无关紧要,但这是一个好习惯),一旦你过滤了if语句就不必要了.

作为附注,过滤“#mainDiv #exception .user”对我来说似乎有些奇怪. “#exception”应该是一个唯一的标识符 – 除非你担心由于某种原因“#mainDiv”可能是“#exception”的孩子.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐