Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选择除一个元素及其子元素/子元素以外的所有元素_Javascript_Jquery_Html_Css - Fatal编程技术网

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都将具有相同的背景色。

您的代码似乎运行良好:我得到的堆栈点似乎是$(“*”)的一部分,我已经对其进行了测试,并且我编写的代码无法正常工作。是否需要为第一个选择器使用特定的标记?不,请参阅此处:,我选择了所有的身体后代,以使背景效果更简单。但仍然不起作用,标题问题解决了。感谢您的回答如果您提供一个不起作用的示例,我们可以帮助您确定问题。