【问题标题】:Exclude certain children when selecting a div with JQuery使用 JQuery 选择 div 时排除某些子项
【发布时间】:2016-01-14 12:25:41
【问题描述】:

我正在使用 jQuery 并尝试选择 div 中的所有项目,但某些特定项目除外,但我找不到任何方法。使用我的网站时,用户可以通过拖动鼠标进行滚动,但我希望将 containerTable 中的某些元素排除在外。我想选择 #containerTable.year 中的所有项目,但不选择 .window 类的项目。

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

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

有没有办法做到这一点?

【问题讨论】:

    标签: jquery jquery-selectors


    【解决方案1】:

    尝试在这种情况下使用.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 应该是静态的。这意味着它必须在绑定事件时可用。

    【讨论】:

    • 害怕它不起作用......问题可能是我在创建任何具有类 .window 的元素之前加载了这个函数吗?
    • @e.klara.k 你可以使用事件委托来解决这个问题。
    猜你喜欢
    • 2015-03-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 2014-11-30
    • 2012-02-19
    • 1970-01-01
    • 1970-01-01
    • 2016-02-25
    相关资源
    最近更新 更多