Jquery 在包含/排除按钮组之间切换活动类

Jquery 在包含/排除按钮组之间切换活动类,jquery,html,css,Jquery,Html,Css,我有一个提供过滤器列表的应用程序 每个过滤器都有一个“包括”和“排除”按钮,例如: <input type="button" name="include_337" value="+"> <input type="button" name="exclude_337" value="-"> Filter 1 <input type="button" name="include_856" value="+"> <input type="button" n

我有一个提供过滤器列表的应用程序

每个过滤器都有一个“包括”和“排除”按钮,例如:

<input type="button" name="include_337" value="+"> 
<input type="button" name="exclude_337" value="-"> Filter 1

<input type="button" name="include_856" value="+"> 
<input type="button" name="exclude_856" value="-"> Filter 2
在include和exclude按钮上都不能激活
类。然而,我不知道该怎么做。此时,可以单击过滤器1上的
+
,两者都将获得
活动的
类:

<input type="button" name="include_337" value="+"> 
<input type="button" name="exclude_337" class="active" value="-"> Filter 1
<input type="button" name="include_337" class="active" value="+"> 
<input type="button" name="exclude_337" class="active" value="-"> Filter 1

过滤器1
我想要的是像单选按钮一样有效,对于特定的过滤器,在任何时候都只能激活
+
-
。但是,这些必须是按钮元素,而不是单选按钮,因此我不想更改
类型
属性


我已经看过了,但这是略有不同,因为它使用单选按钮,也取消选中所有其他复选框。在这种情况下,我希望它应用于过滤器组-即更改过滤器1不应影响过滤器2等。这是否可能?

我在这里所做的是将每一对放在一个div中,该div具有一个
.filterGroup
类。这意味着它们与其他组分开

除此之外,我还使用jQuery中的
sides()
函数检查是否找到了类,然后将其删除。一旦有了活动类,您可以看到文本变为
红色

$(“输入”)。单击(函数(){
var$this=$(this);
$this.toggleClass(“活动”);
if($this.sibles().hasClass(“活动”)){
$this.sides().removeClass(“活动”)
}
});
input.active{
颜色:红色;
}

过滤器1
过滤器2

处理此问题最合理的方法是选中一个简单的复选框,打开或关闭过滤器。。。这听起来像是一个典型的设计师认为他们知道最好的需求。。。(从用户的角度来看,我希望显示
+
/
-
的按钮旨在增加/减少数值。)
.filterGroup
有什么意义吗?我没有,这只是一组输入,但实际上仍然有效。我真的不明白这是怎么可能的-它是针对最近的事物使用
.active
还是其他什么?@Andy没有重大意义不,它只是一个div来分隔你拥有的组。jQuery然后查看
.filterGroup
div中的输入同级。我知道这是为了将它们分开,但当它们只是作为一组庞大的
输入列出来时(都包含在1
div
中),这似乎仍然有效。所以我不确定它是如何工作的,但它确实如此@Andy它在没有div的情况下工作的原因是它将所有输入视为兄弟,但我假设您想要设置多个过滤器,所以只需将它们包装在div中:)