Javascript 带有标记的可排序复选框
您好,这有点不对劲,但是否可以有3个复选框,并在选中一个复选框时隐藏我的a标记,但如果选中复选框2,它也会隐藏该复选框,那么当您取消选中复选框1时,如果选中另一个复选框,它仍将保持隐藏状态,如可排序选项Javascript 带有标记的可排序复选框,javascript,jquery,html,jquery-ui,checkbox,Javascript,Jquery,Html,Jquery Ui,Checkbox,您好,这有点不对劲,但是否可以有3个复选框,并在选中一个复选框时隐藏我的a标记,但如果选中复选框2,它也会隐藏该复选框,那么当您取消选中复选框1时,如果选中另一个复选框,它仍将保持隐藏状态,如可排序选项 <input type="checkbox" class="example" id="check1"><label>check1</label> <input type="checkbox" class="example" id="check2">
<input type="checkbox" class="example" id="check1"><label>check1</label>
<input type="checkbox" class="example" id="check2"><label>check2</label>
<input type="checkbox" class="example" id="check3"><label>check3</label>
<a class="check1 check2" href="">check1</a>
<a class="check2" href="">check2</a>
<a class="check3" href="">check3</a>
<a class="check1" href="">check1</a>
<a class="check2" href="">check2</a>
<a class="check3 check2" href="">check3</a>
<a class="check1 check2" href="">check1</a>
<a class="check2" href="">check2</a>
<a class="check3" href="">check3</a>
试试下面。这是你需要的吗。隐藏在相应的复选框编号上
$(函数(){
$('.example').change(函数(){
$(“[class*=check]”。删除类(“隐藏”);
$(“.example:checked”).each(函数(){
$(“+this.id).addClass(“隐藏”);
});
});
});代码>
.hide{display:none}
支票1
支票2
支票3
当复选框更改状态时,请执行以下操作:
获取复选框的所有ID
将这些ID放入jQuery类选择器中
隐藏所有a
标记,然后显示与任何存储类匹配的标记
$(函数(){
$('a').hide();
});
$('input[type=“checkbox”]”)。在('change',function()上{
var checkedClasses=$('input[type=“checkbox”]:checked').toArray().map(函数(e){
返回“.”+e.id;
});
var选择器=checkedClasses.join(',');
$('a').hide().filter(selector.show();
});代码>
支票1
支票2
支票3
我想这就是你想要的:
在复选框上单击“显示所有a”,然后获取复选框并隐藏其类中包含选中元素id的所有a
$('input:checkbox').change(function() {
$("a").removeClass("hide");
$('input:checkbox:checked').each(function(){
var theID = this.id;
$("a[class*=" + theID + "]").addClass("hide");
});
});
你能说得更具体些吗?这听起来当然有可能,但还不清楚你想要遵循的逻辑。嗨,Dave,呃,这里是这样的…如果我选中复选框1和复选框2,它会将隐藏clsss添加到具有相同类的a标记中。但是,如果我取消选中复选框1,但保留复选框2选中所有复选框2保持隐藏,但所有带有复选框1的内容现在都可见,这样更好吗?是的,很接近,当您选中所有三个复选框1,然后取消选中复选框1时,该标记仍应显示正确,因为它有2个类它确实有两个类,但我不知道为什么它会显示出来。它的编写方式是,当您取消选中check1
时,它会隐藏带有class=“check1”
的任何内容。我遗漏了什么?是的,这是正确的。如果检查2被检查,我需要它仍然显示出来。我想我现在知道了。看看最新的答案
$('input:checkbox').change(function() {
$("a").removeClass("hide");
$('input:checkbox:checked').each(function(){
var theID = this.id;
$("a[class*=" + theID + "]").addClass("hide");
});
});