我有一个脚本可以选择特定元素下的所有标记,但它也会排除脚本标记。所以现在它如下。
$(myElement).find("*:not(script)").each(function(){
但我需要排除一个元素及其子元素。我不知道该怎么做。我尝试了以下方法,但它只跳过dontneed
类的元素,而不是它的子元素。
$('body').find("*:not(script):not(:parent.dontneed)")
$('body').find("*:not(script, :parent.dontneed)")
请帮忙。
答案 0 :(得分:2)
您可以将multiple selector传递给:not()。那个多选择器应匹配:
dontneed
类dontneed
类的元素的后代。所以你可以写:
$("body").find(":not(script, .dontneed, .dontneed *)")
答案 1 :(得分:1)
你可能必须
$(myElement).find("*:not(script)").filter(function(){
return $(this).closest('.dontneed').length == 0
})
答案 2 :(得分:1)
:父母不会这样做,除非它意味着“元素是父母(有孩子)”
可能是。*:not(script):not(.dontneed):not(.dontneed > *)
的.find()
或.find('*').not('script, .dontneed, .dontneed > *')
我更喜欢第二种解决方案。