这是我想出的代码,感谢以下建议。他们中的大多数人几乎都按规定工作,但没有人在与现实世界的接触中幸存下来。这就是为什么,以及剩下的问题:
下面的内容展示了 3 个复选框和一组 DIVS,它们应该随着复选框被选中和取消选中而出现和消失。第一次尝试,他们似乎工作。从左到右选中每个复选框会显示每个复选框的相关内容。
但是,有时取消选中并不会隐藏内容。在第二个和第三个复选框的情况下,有一个测试。其中一个搜索到的 DIV 包含“Greentooth”和“Redtooth”,这意味着选中第二个复选框将显示所有具有 Greentooth 的框,而选中第三个框将显示任何内容,因为 Redtooth 项目也存在于 Greentooth 项目中。这是正确的行为,但取消选中 Greentooth (2nd) 复选框应该隐藏 Greentooth-only DIVS,但事实并非如此。取消选中 Redtooth DIVS 可能会或可能不会隐藏它们,取消选中第一个复选框可能会或可能不会起作用。
因此,JS/JQuery 似乎关注复选框的 CHECKED 结果,但似乎没有遍历剩余的复选框来检查它们的状态。这个对吗?
我玩过 JQuery Listen and Live,但没有得到任何结果。我需要某种循环吗?
如果您不明白我在说什么,请将代码放入浏览器并尝试检查和取消检查几次。
感谢你的协助。
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="jquery-1.6.2.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(document).ready(function()
{
$("form[name=form1] input:checkbox").click(function()
{
$(".rightcolumn div:contains('"+this.value+"')").css("display", this.checked?"block":"none");
});
});
</script>
<div name="leftcolumn">
<form action="" method="post" name="form1" >
<label>
<input type="checkbox" id="Yoko" value="Sabretooth">
Sabretooth
</label>
<label>
<input type="checkbox" id="Yoko-" value="Greentooth">
Greentooth
</label>
<label>
<input type="checkbox" id="Ringo" value="Redtooth">
Redtooth
</label>
</form>
</div>
<div class="rightcolumn">
<style type="text/css">
label
{
font-weight: bold;
}
.hide
{
display: none;
}
.show
{
display: block;
}
</style>
<div name="hider" class="hide">
John Resig Sabretooth
</div>
<div name="hider" class="hide">
George GreentoothMartin
</div>
<div name="hider" class="hide">
Malcom John Greentooth GreentoothRedtoothSinclair
</div>
<div name="hider" class="hide">
J. Ohn
</div>
<div name="hider" class="hide">
George toothMartin
</div>
<div name="hider" class="hide">
Malcom John Greentooth GreentoothRedtoothSinclair
</div>
<div name="hider" class="hide">
J. Ohn
</div>
</div>
</body>
</html>