假设我想绑定所有项目
#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 举报,一经查实,本站将立刻删除。