好的,所以我有这个jquery函数来抓取复选框的值并用作标识符来显示或隐藏ul
问题是我无法在复选框添加X中添加if只有1个选项。
以下是代码和我尝试过的内容
$('#filter li input:checkbox').change(
function(){
var show = $('input:checkbox:checked').map(function(){
return $(this).val();
});
if (show.length > 0)
{
$('#list li').each(
function(){
/*if ($.inArray($(this).attr('class'),show) <= 1)
{
console.log($(this));
}
else */if ($.inArray($(this).attr('class'),show) > -1)
{
$(this).show();
}
else
{
$(this).hide();
}
});
}
else {
$('#list li').show();
}
});
我真的不明白这是如何运作的:if ($.inArray($(this).attr('class'),show) > -1)
因为我尝试了if ($.inArray($(this).attr('class'),show) = 1)
而没有
答案 0 :(得分:3)
您在if
子句中指定了一个值:
if ($.inArray($(this).attr('class'),show) = 1)
要打破它,这实际上说的是等同于
$.inArray($(this).attr('class'),show) = 1;
if ($.inArray($(this).attr('class'),show))
{
...
您应该使用==
比较运算符
if ($.inArray($(this).attr('class'),show) == 1)
或者,更准确地避免类型错误,请使用===
if ($.inArray($(this).attr('class'),show) === 1)
这样可以避免1
和"1"
返回true