Javascript 选择除一个元素及其子元素/子元素以外的所有元素
我正在寻找一种方法来选择所有元素,除了一个元素及其子元素(可能有子元素/孙子元素或更多子元素)之外。 我真正想做的是Javascript 选择除一个元素及其子元素/子元素以外的所有元素,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在寻找一种方法来选择所有元素,除了一个元素及其子元素(可能有子元素/孙子元素或更多子元素)之外。 我真正想做的是 $("*").not(".foo, .foo *").bind("touchmove",function(e){ e.preventDefault(); }); 这将禁用除foo类及其子类之外的所有touchmove事件。 但不幸的是,我不知道它会有多少代,因为我即将编写的代码 write将用于很多模板文件中,所以他们可能根本没有孩子,或者可能有10代人的家庭 有没有办
$("*").not(".foo, .foo *").bind("touchmove",function(e){
e.preventDefault();
});
这将禁用除foo
类及其子类之外的所有touchmove
事件。
但不幸的是,我不知道它会有多少代,因为我即将编写的代码
write将用于很多模板文件中,所以他们可能根本没有孩子,或者可能有10代人的家庭
有没有办法做到这一点?除了制作新的dev/span来包装除我不想选择的以外的所有人之外(由于某些原因,此解决方案需要很长时间)
任何建议或建议都将不胜感激。您的代码完全符合您的要求: 你试过了吗?我用hover做了一个小例子,使其可见+我只选择了 div's和p's使它更简单,但它也可以与所有元素一起工作
$("div,p").not(".foo, .foo *").hover(function(){
$(this).css("background", "#70A5C9");
},function(){
$(this).css("background", "#ffffff");
});
这是因为每个后代都继承了祖先的阶级。在我的示例中,您可以看到最深的div将拥有所有fooX类(1另一方面,一旦我给foo3一个新的背景色,所有内部的Foo都将具有相同的背景色。您的代码似乎运行良好:我得到的堆栈点似乎是$(“*”)的一部分,我已经对其进行了测试,并且我编写的代码无法正常工作。是否需要为第一个选择器使用特定的标记?不,请参阅此处:,我选择了所有的身体后代,以使背景效果更简单。但仍然不起作用,标题问题解决了。感谢您的回答如果您提供一个不起作用的示例,我们可以帮助您确定问题。