Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.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 - Fatal编程技术网

Javascript 单击按钮的两个不同部分时组合两个过滤器

Javascript 单击按钮的两个不同部分时组合两个过滤器,javascript,jquery,Javascript,Jquery,我想在单击按钮的两个不同部分时合并两个过滤器。现在,当我单击一个按钮时,它会删除上一个按钮的选择。我已经尝试了几个功能,但我没有能够得到正确的逻辑 我已经写了一个我当前状态的模式 HTML 它也在里面 还有,很高兴拥有: 我想知道如何颜色按钮一旦被选中 添加一个重置按钮(我想在数据类别中添加“重置”会很容易) 提前感谢您的建议和建议!我已经为您的js提琴提供了一个使用CSS类的解决方案 JavaScript $('.btn').removeClass('btn-selected'); //

我想在单击按钮的两个不同部分时合并两个过滤器。现在,当我单击一个按钮时,它会删除上一个按钮的选择。我已经尝试了几个功能,但我没有能够得到正确的逻辑

我已经写了一个我当前状态的模式

HTML

它也在里面

还有,很高兴拥有:

  • 我想知道如何颜色按钮一旦被选中
  • 添加一个重置按钮(我想在数据类别中添加“重置”会很容易)

提前感谢您的建议和建议!

我已经为您的js提琴提供了一个使用CSS类的解决方案

JavaScript

$('.btn').removeClass('btn-selected'); // resetting all buttons to remove class

/* other code */

$(this).addClass('btn-selected'); // adding class to clicked button
CSS中的问题是选择器中缺少

.btn-selected { }

一种方法是使用
单选按钮。它们允许每组进行一次选择

一个缺点是你不能取消选中一个单选按钮,除非在同一组中选择另一个单选按钮,所以我在每个组中都添加了一个“重置”按钮

选择后,我将根据选中的按钮构建一个类选择器字符串

$(“.mycb输入”).on('change',函数(e){
//选择所有选中的按钮。
var$checked=$('.mycb:checked');
//构建一个包含所有选中值的数组。
var checked_classes=$checked.map(函数(){
返回此.value;
}).toArray();
//将基线“element”类添加到数组中。
选中的类。取消移位('.element');
//构建类选择器字符串。
变量类=选中的类。联接('.');
//调试类选择器字符串。
//console.log(类);
//隐藏所有元素。
$('.element').hide();
//显示与类选择器字符串匹配的元素。
$(classes.fadeIn();
});
$('.reset')。在('click',function()上{
var$container=$(this).closest('p');
$('input',$container).prop('checked',false).last().trigger('change');
});
btn已选择{
颜色:红色;
}
.mycb输入{
显示:无;
}
.mycb span{
背景色:白色;
边框:1px实心#CCC;
边界半径:.3em;
填充:0.3em;
光标:指针;
用户选择:无;
}
.mycb输入:选中+span{
背景颜色:浅蓝色;
}

语言:
EN
信息技术
重置

材料: A. B C 重置

恩A

恩B

it C

它是b


您需要创建一种方法来知道每个子组中的哪个被选中(如果有的话)。然后当有人单击按钮时,您会找到标记为选中的所有按钮,并执行筛选。这可能是通过在按钮上放置一个类并查找该类的元素来实现的。但是我强烈建议你减少你的问题,删除“还有,很好拥有”。您的问题应限制在单个问题的范围内,否则会过于宽泛。另一种了解组中选择哪个选项的方法是将按钮转换为单选按钮,前提是在给定时间组中只允许选择一个选项。
$('.btn').removeClass('btn-selected'); // resetting all buttons to remove class

/* other code */

$(this).addClass('btn-selected'); // adding class to clicked button
.btn-selected { }