2013-06-28 53 views
1

我确实有一个脚本,它选择特定元素下的所有标签,它也排除脚本标签。所以现在它如下。排除具有特定类的父亲的元素

$(myElement).find("*:not(script)").each(function(){ 

但我需要排除一个元素及其子元素。我不知道该怎么做。我尝试了以下,但它只跳过dontneed班的元素,而不是它的孩子。

$('body').find("*:not(script):not(:parent.dontneed)") 

$('body').find("*:not(script, :parent.dontneed)") 

请帮忙。

回答

2

您可以通过一个multiple selector:not()。多个选择应符合:

  • 脚本,暴露暴露出dontneed类元素的dontneed
  • 后裔
  • 元素。

所以你可以这样写:

$("body").find(":not(script, .dontneed, .dontneed *)") 
+0

是的,它的工作。 :-) – Jithin

1

您可能需要

$(myElement).find("*:not(script)").filter(function(){ 
    return $(this).closest('.dontneed').length == 0 
}) 
1

:父母不会做的伎俩,除非它的意思是 “元素的母(有孩子)”

可能是.find()与*:not(script):not(.dontneed):not(.dontneed > *).find('*').not('script, .dontneed, .dontneed > *')

我更喜欢第二种解决方案。

相关问题