带复选框的Javascript过滤器
我试图使用复选框来过滤页面内容。我让它在选中该框时隐藏内容,但在未选中时不会再次显示所有内容。任何帮助都将不胜感激。先谢谢你带复选框的Javascript过滤器,javascript,jquery,checkbox,filter,Javascript,Jquery,Checkbox,Filter,我试图使用复选框来过滤页面内容。我让它在选中该框时隐藏内容,但在未选中时不会再次显示所有内容。任何帮助都将不胜感激。先谢谢你 $(document).ready(function() { $('input').change(function(){ $('input').each(function(){ var checked; if (checked = $(this).attr('checked')); var reclessons =
$(document).ready(function() {
$('input').change(function(){
$('input').each(function(){
var checked;
if (checked = $(this).attr('checked'));
var reclessons = $('li[data-rec='+$(this).data('rec')+']');
checked ? reclessons.show('slow'): reclessons.hide('slow');
});
var unchecked=0;
if(unchecked=0){$('li').show('slow');}
});
});
这是你想要什么的基础。注意
道具
是否已选中
.attr()
方法不返回布尔值,而且=
是赋值,不比较值,应使用=
或=
运算符进行比较
var $ch = $('input[type=checkbox]');
$ch.change(function() {
// show/hide the related `li` element
$('li[data-rec='+$(this).data('rec')+']').toggle(this.checked);
// show all `li` elements if there is no checked checkbox
if ( $ch.filter(':checked').length === 0 ) {
$('li').show();
}
});
在这里,我使用了我的复选框项目烹饪。下面的代码段给出了复选框筛选的逻辑
handleguisinechange
是包含逻辑的函数。循环的长度是8,因为我在这里选择的菜系数(复选框项目数)是8。用复选框数据替换此处的菜系
。应用此逻辑,您的复选框项就可以进行筛选了
在axios内部,我使用了自己的后端API和端口号
handleguisinechange=(烹饪id)=>
{
const{cuisineArray}=this.state;//构造函数中声明的空数组
if(cuisineArray.indexOf(cuisine\u id)=-1)
{
cuisineArray.push(烹饪id);
}
其他的
{
var index=cuisineArray.indexOf(烹饪id);
菜系.拼接(索引,1);
}
const{cuisineArray2}=this.state;//构造函数中声明的空数组
设i=0;
对于(i=0;i
{
this.setState({restaurants:res.data.restaurants});
})
.catch(err=>console.log(err))
}
render()
{
const{restaurants}=this.state;
返回(
this.handleguisinechange(“1”)}/>
北印度
this.handleguisinechange(“2”)}/>
南印度
此.handleguisinechange(“3”)}/>
中国人
this.handleguisinechange(“1”)}/>
快餐
this.handleguisinechange(“1”)}/>
街头小吃
this.handleguisinechange(“1”)}/>
美国人
this.handleguisinechange(“1”)}/>
意大利人
this.handleguisinechange(“1”)}/>
墨西哥人
)
}//render end
只是一个建议,将筛选复选框赋予它们自己的类,并通过该类选择它们,而不是选择所有输入。如果语句都有=
第一个是速记,第二个是错误您应该真正使用.prop(“checked”)
@stevell为什么.prop('checked')
返回.checked
属性的值,即this.checked
。没有区别。但事实上,.prop()
是为作业制作的,.checked
是一个未记录的功能。@stevemarvell实际上.prop()
不属于任何标准。它只是jQuery对象的一个(helper)方法,使用的很多都是文档化的helper函数。
$(document).ready(function() {
$('input[type=checkbox][data-target]').change(function() {
var checked = $(this).prop('checked');
var target = $(this).data('target');
$('#' + target).toggle(checked);
});
});
var $ch = $('input[type=checkbox]');
$ch.change(function() {
// show/hide the related `li` element
$('li[data-rec='+$(this).data('rec')+']').toggle(this.checked);
// show all `li` elements if there is no checked checkbox
if ( $ch.filter(':checked').length === 0 ) {
$('li').show();
}
});