使用JQuery选择div时排除某些子项

时间:2016-01-14 12:25:41

标签: jquery jquery-selectors

我正在使用jQuery并试图选择div中的所有项目,除了一些特定的项目,但我找不到任何方法来做到这一点。使用我的网站时,用户可以通过拖动鼠标进行滚动,但我希望containerTable中的一些元素可以从中排除。我想选择#containerTable.year中的所有项目,而不选择课程.window中的所有项目。

我尝试了过滤功能,但它没有工作,我没有选择任何项目。

$('#containerTable, .year').filter('.window').on({
            'mousemove': function(e) {
                clicked && updateScrollPos(e);
                //etc.....
            });

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

尝试在此背景下使用.not()

$('#containerTable *, .year *').not('.window')

not将排除与传递的选择器匹配的元素。但是filter会过滤掉与选择器匹配的特定元素。

根据评论中的新要求,您应该使用事件委派。

$('#containerTable, .year').on("mousemove", '#containerTable *:not(.window), .year *:not(.window)', function(e) {
  clicked && updateScrollPos(e);
  //etc.....
});

其中#containerTable.year应该是静态的。这意味着它必须在绑定事件时可用。