选择除了带有子项的div以外的所有.on()

时间:2016-03-15 09:15:48

标签: javascript jquery html

是的,我知道之前有人问过,但我无法找到解决问题的答案。

这非常接近:jquery select all elements except a div and its children

但是我想在.on()语句中选择除了div之外的所有div,就像这样(简化)

$('body').on('click', ':not(._project_overlay), :not(._project_overlay *)', globalClickHandler);

我不知道为什么这不会起作用: - / (我也试过上面的每个变种)

这样的事情确实会选择除了div及其所有孩子之外的一切:

$('body').find(':not(._project_overlay *)')

那么为什么在地球上将.on()绑定到div的孩子身上?

请帮助我:(

2 个答案:

答案 0 :(得分:2)

您使用的是multiple selector,相当于逻辑OR

:not(._project_overlay) OR :not(._project_overlay *)

因此,它最终匹配._project_overlay及其后代。

您想要一个AND,所以您应该简单地写一下:

:not(._project_overlay):not(._project_overlay *)

答案 1 :(得分:1)

使用https:\/\/cmsr-author\.de\/(content|...|...)\/de\.html 代替以下。

:not(._project_overlay, ._project_overlay *)