如何选择另一个元素(e)的子元素(se),但不包括所选子元素(sse)的子元素之一?

时间:2014-04-05 12:37:53

标签: jquery css css3 jquery-selectors css-selectors

示例:

.element
  |
  |-.subelement
      |
      |-.subsubelement1
      |-.subsubelement2
      |-.subsubelement3
      |-.non-desired-subsubelement
      |-.subsubelement4

那么如何不列出所有需要的子元素(例如未知),但仍然会收到其子元素.subelement的聚合元素.subsubelementX,而不是.non-desired-subsubelement

不是数组[subsubelement1, subsubelement2, subsubelement3, subsubelement4]

但是一个聚合元素subelement,没有non-desired-subsubelement作为其后代:

  .subelement
    |
    |-.subsubelement1
    |-.subsubelement2
    |-.subsubelement3
    |-.subsubelement4

我想到了这个:

$('.element .subelement:not([class^="non-desired-subsubelement"])') // selects subelements which has no class non-desired-subsubelement

很高兴有类似的东西:

$('.element .subelement:not(>>this<<:has([class^="non-desired-subelement"]))')

即。使用否定&#34;有&#34;选择;或类似的东西:

$('.element .subelement:has-not([class^="non-desired-subelement"])') // much nicer

更容易获取.subelement而不是删除.non-desired-subsubelement,以便分两步完成?

var subelement = $('.element .subelement');
subelement.remove('.non-desired-subsubelement');

可能还有一个复杂的选择器?

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

$('.element .subelement [class^="sub"])