Javascript 选择div中的所有元素,但不选择特定元素

Javascript 选择div中的所有元素,但不选择特定元素,javascript,jquery,Javascript,Jquery,如何选择.content中的所有元素,而不是.bts?这是我的密码。我正在使用not()函数排除.bts,但它不起作用。应该怎么做 $('.content')。不是('.bts')。单击(函数(){ 警惕(“击中”); }); .content{ 身高:100%; 宽度:100%; } p{} .bts{ 背景:蓝色; 高度:100px; 宽度:100px; } 试验 基站 您可以使用$('.content*:not(.bts) .content*意味着它将获取上的所有元素。content,

如何选择
.content
中的所有元素,而不是
.bts
?这是我的密码。我正在使用
not()
函数排除
.bts
,但它不起作用。应该怎么做

$('.content')。不是('.bts')。单击(函数(){
警惕(“击中”);
});
.content{
身高:100%;
宽度:100%;
}
p{}
.bts{
背景:蓝色;
高度:100px;
宽度:100px;
}

试验

基站
您可以使用
$('.content*:not(.bts)

.content*
意味着它将获取
上的所有元素。content
,添加
not(.bts)
将从规则中删除具有
bts
类的所有元素

演示

$('.content*:非(.bts))。单击(函数(){
控制台日志(“命中”);
});
.content{
身高:100%;
宽度:100%;
}
p{}
.bts{
背景:蓝色;
高度:100px;
宽度:100px;
}

试验

基站
.content
不是
.bts
,因此
.not
不会做任何事情-而是将另一个选择器传递给单击处理程序,以避免在单击
.bts
时触发处理程序:

$('.content')。在('click',':not(.bts),()=>{
控制台日志(“命中”);
});
.content{
身高:100%;
宽度:100%;
}
p{}
.bts{
背景:蓝色;
高度:100px;
宽度:100px;
}

试验

基站
这是如何在Vanilla JS中实现的

let elements=document.querySelectorAll(.content>:not(.bts)”;
elements.forEach(ele=>{
ele.addEventListener(“单击”,函数(){
警报(“命中”)
})
})
.content{
身高:100%;
宽度:100%;
}
p{}
.bts{
背景:蓝色;
高度:100px;
宽度:100px;
}

试验

基站
由于此答案尚未发布,并且是根据OP的代码解决其问题的最简单方法,我会这样做:您只是忘记选择
。content
子项,您可以在
选择器之后立即使用函数执行。content
选择器如下:

$('.content').children()。而不是('.bts')。单击(函数(){
警惕(“击中”);
});
.content{
身高:100%;
宽度:100%;
}
p{}
.bts{
背景:蓝色;
高度:100px;
宽度:100px;
}

试验

基站
什么是*before:not means?*表示它选择了
中的所有元素。content
这并不注册点击
。content
本身。@CertainPerformance我看不出这是一项要求。但我会修好的。顺便说一句,您的代码也不会在
.content
本身上触发。