显示如果选中1复选框,则隐藏SEVERAL UNCHECKED jquery

时间:2013-05-15 21:17:17

标签: jquery hide show checked unchecked

您好我想弄清楚如何在复选框困境中做一些逻辑。

我有一个带有与之关联的标签的视频列表。

它有一个相应的复选框。

选中该复选框后,将使用jquery显示列表(display:none)。

现在,由于每个视频都有多个标签。相反的功能将被证明是不合需要的,因为如果未选中该框,则会删除其相关视频,包括碰巧已被其他chekced标签框显示的视频。因此,一旦显示div,它就会立即再次隐藏。你跟着?

我正在设想像

这样的东西

if(tag1 AND tag2 AND tag3 AND tag4未选中)然后(隐藏视频div)

我能以任何方式实现这一目标吗?

这是上半场,其余的可能取决于你!!

$("#squaredThree<? echo $a_number  ?>").change(function() {
    var amount = 0;
    $("#squaredThree<? echo $a_number  ?>:checked").each(function(){

console.log('this has been determined to be ":checked"');

var theonestoshow = document.getElementsByClassName('<? echo $total_tags[$a_number]  ?>');

$(theonestoshow).show( "drop", 300); 

    });
});

另外,您可以考虑使用样式界面,这样您就可以了解我甚至在谈论的内容:

gui

1 个答案:

答案 0 :(得分:0)

我发现您的解释有点令人困惑,但我实现您的要求的方式是更改任何复选框测试,是否检查了组中的任何内容,如果是,则显示视频,如果不隐藏它。

您目前在$("#squaredThree<? echo $a_number ?>:checked")上使用.each()循环 - 这是否意味着您有多个具有相同ID的元素?这不是有效的HTML,并且不能很好地与你的JS一起工作。最好将所有相关的复选框都放在一个公共类中,因为这样您就可以轻松地将它们作为一个组来处理。假设您将其更改为class="checks"

var $cbs = $(".checks").change(function() {
    if ($cbs.is(":checked")){
        $('.<? echo $total_tags[$a_number]  ?>').show( "drop", 300);
    } else {
        $('.<? echo $total_tags[$a_number]  ?>').hide( "drop", 300);
    }
});

演示:http://jsfiddle.net/DvGrD/

如果检查了jQuery对象中的任何元素,

.is(":checked")将返回true,如果没有选中,则返回false。

(当然如果您不想更改以介绍课程,您仍然可以使用您选择的选择器使用相同的想法。)