Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery基于复选框隐藏父div_Jquery_Css - Fatal编程技术网

jQuery基于复选框隐藏父div

jQuery基于复选框隐藏父div,jquery,css,Jquery,Css,我有以下代码: 我需要隐藏以.wpbdplisting开头的div,而不是隐藏.listing details css类 我该怎么办 谢谢。您可以使用在JQuery中获取元素的父元素 可以使用获取JQuery中元素的父元素 要获取父节点,不管它有多深,请使用.nextest jquery方法 $(".listing-details > div").closest('.wpbdp-listing').hide() 查看doc要获取父节点,无论它有多深,请使用.closest jquery方

我有以下代码:

我需要隐藏以.wpbdplisting开头的div,而不是隐藏.listing details css类

我该怎么办


谢谢。

您可以使用在JQuery中获取元素的父元素


可以使用获取JQuery中元素的父元素


要获取父节点,不管它有多深,请使用.nextest jquery方法

$(".listing-details > div").closest('.wpbdp-listing').hide()

查看doc

要获取父节点,无论它有多深,请使用.closest jquery方法

$(".listing-details > div").closest('.wpbdp-listing').hide()

看看doc,最好把东西分开并清理干净:我的意思是我们可以有一个函数来做任何事情,因此我们可以随时调用它。我的意思是在DOM加载后调用它,然后在复选框更改时调用它

ToggleThings();

$("#filters :checkbox").change(function() {
    ToggleThings();
});

function ToggleThings()
{
    $(".wpbdp-listing").hide();
    $("#filters :checkbox:checked").each(function() {
        $('.' + $(this).val()).closest('.wpbdp-listing').show();
    });
}
更新最终解决方案:


最好把东西分开并清理干净:我的意思是我们可以有一个函数来做任何事情,因此我们可以随时调用它。我的意思是在DOM加载后调用它,然后在复选框更改时调用它

ToggleThings();

$("#filters :checkbox").change(function() {
    ToggleThings();
});

function ToggleThings()
{
    $(".wpbdp-listing").hide();
    $("#filters :checkbox:checked").each(function() {
        $('.' + $(this).val()).closest('.wpbdp-listing').show();
    });
}
更新最终解决方案:


请尝试此代码,并在


我添加了$.wpbdp-listing.hide只是为了开始它,所以div是隐藏的,因为首先复选框是未选中的。您也可以先选中复选框,然后删除该行。

尝试此代码,然后在


我添加了$.wpbdp-listing.hide只是为了开始它,所以div是隐藏的,因为首先复选框是未选中的。您也可以先选中复选框,然后删除该行。

非常感谢。如何使它们在默认情况下全部显示,并且在未选中复选框时全部显示?您可以在第一行添加注释,这样它们将显示在StartAll上,您可以执行以下操作:$.wpbdp-listing.show;它们会发光:再次感谢@george garchagudashvili我尝试过添加一个语句,如果$filters输入:checkbox:checked.length>0{//Do nothing}其他{$.wpbdp-listing.show;}但是没有运气?如果没有选中复选框,我希望它默认返回显示所有这些代码。您将代码放在哪里?你可以更新我的Fiddle版本,非常感谢。如何使它们在默认情况下全部显示,并且在未选中复选框时全部显示?您可以在第一行添加注释,这样它们将显示在StartAll上,您可以执行以下操作:$.wpbdp-listing.show;它们会发光:再次感谢@george garchagudashvili我尝试过添加一个语句,如果$filters输入:checkbox:checked.length>0{//Do nothing}其他{$.wpbdp-listing.show;}但是没有运气?如果没有选中复选框,我希望它默认返回显示所有这些代码。您将代码放在哪里?你可以更新我的小提琴版本
ToggleThings();

$("#filters :checkbox").change(function() {
    ToggleThings();
});

function ToggleThings()
{
    var checkedboxes = $("#filters :checkbox:checked");

    if (checkedboxes.length > 0)
    {
        $(".wpbdp-listing:visible").hide();

        checkedboxes.each(function() {
            $('.' + $(this).val()).closest('.wpbdp-listing').show();
        });
    }
    else
    {
        $(".wpbdp-listing").show();
    }
}
$(".wpbdp-listing").hide()
$("#filters :checkbox").change(function() {
        $(".listing-details ." + $(this).val()).parents('.wpbdp-listing').hide();
    $("#filters :checkbox:checked").each(function() {
        $(".listing-details ." + $(this).val()).parents('.wpbdp-listing').show();
    });
});