【问题标题】:Is that possible to select all elements that does not match a selector?是否可以选择与选择器不匹配的所有元素?
【发布时间】:2010-09-10 19:12:12
【问题描述】:

我有一张有很多行的表。

我想选择所有与某些选择器不匹配的行。

例如:

$('#my_table tr').each(function() {
    if ($(this).find(".class_a.class_b[my_param='" + my_value + "']").length > 0) {
        $(this).do_something();
    }
});

是否有可能以更简单的方式做同样的事情?

【问题讨论】:

  • api.jquery.com/not-selector 或许有点用处?
  • 陷阱:当你删除这些元素时,如果它们包含你想要保留的子元素,它可能不起作用。在这种情况下,首先从根元素中搜索要保留的元素,.detach() 它们,.remove() all children() 或 .contents(),.append() 分离元素到根元素。

标签: javascript jquery css jquery-selectors


【解决方案1】:

看看 jQuery 的:not()-selector。它从当前选择集中排除元素。

【讨论】:

    【解决方案2】:
    $('#my_table tr').not('.class_a').each(function(){
       // do something
    }
    );
    

    上述代码将选择表中 ID='my_table' 且类名不是 'class_a' 的所有行。这是你需要的吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-19
      • 2011-05-23
      • 1970-01-01
      • 2020-03-06
      • 2020-05-24
      • 1970-01-01
      • 2016-10-12
      • 2021-11-10
      相关资源
      最近更新 更多