假设我想绑定(bind)下的所有项目
#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”的子代。
关于jquery - 在 jquery 选择器路径中添加异常的最佳方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9541103/