Javascript 排除匹配的DOM&;选择的孩子?

Javascript 排除匹配的DOM&;选择的孩子?,javascript,jquery,dom,jquery-selectors,Javascript,Jquery,Dom,Jquery Selectors,我想从DOM中选择一组元素及其子元素 然后,我想在DOM上运行一组排除这些元素的选择,就像它们被删除一样 .not()似乎同时匹配父元素和子元素,并且不能正确排除 .find(':not(.myclass)返回一个关于bajillion元素的列表,并且不会正确排除 我有什么问题?这看起来很简单,但我期望实现的函数的行为与我期望的不一样 我考虑克隆DOM,删除元素,然后在克隆的DOM上运行我的选择匹配。。。但这似乎很糟糕。比如说,一次重大的演出 最好的方法是什么 以下是我的代码: jQuery('

我想从DOM中选择一组元素及其子元素

然后,我想在DOM上运行一组排除这些元素的选择,就像它们被删除一样

.not()
似乎同时匹配父元素和子元素,并且不能正确排除

.find(':not(.myclass)
返回一个关于bajillion元素的列表,并且不会正确排除

我有什么问题?这看起来很简单,但我期望实现的函数的行为与我期望的不一样

我考虑克隆DOM,删除元素,然后在克隆的DOM上运行我的选择匹配。。。但这似乎很糟糕。比如说,一次重大的演出

最好的方法是什么

以下是我的代码:

jQuery('html').not(".page-node,.quote").find(selector).each(function(){
//do stuff here to returned elements
.page node
是一个body类,应该在几乎所有页面上返回body元素,并排除那些页面上匹配的选择器

编辑:我创建了一个JSFIDLE来演示我所说的内容:

Not()
将使用适当的后代选择器。任何选择器后面的
*
都将匹配所有子代(子代、孙辈等)。通过在
not
中应用它,可以要求将所有子体从匹配中排除。由于您还希望排除父项,请将其也包括在
not
中:

例如 这相当于: “没有类
页面节点
页面节点
的子/后代”或“没有类
引用
引用
的任何子/后代”

更新的JSFIDLE:
这相当于“查找所有具有类
列表的项,但排除任何也具有类
排除
的项,并排除任何具有类
排除
的元素的子元素”

不()
将不匹配父项和子项。对于任何人来说,如果不能够通过测试live html来了解问题所在,就很难提供帮助。在jsfiddle.net上的一个演示对我来说很有帮助,听起来好像你需要一个
过滤器,带有一个
最近的('.page node')
等等。但是用一个模糊的描述很难说出来?好了,伙计们,我添加了一个jsfiddle。如果不清楚,请告诉我:谢谢。但我想删除“selector”的父级,导致“selector”不尝试匹配排除的父级。规则何时更改:“一组元素及其子元素”?:)@杰里米·约翰:我已经更新了你的小提琴,向你展示了如何使用后代选择器。太好了,谢谢你花时间向我解释。我丢失的是*选择器。
$(selector).not(".page-node,.page-node *,.quote,.quote *")
jQuery(document).find('.list').not('.exclude,.exclude *').each(function(){
    this.remove();
});