Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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未到达else语句_Jquery - Fatal编程技术网

JQuery未到达else语句

JQuery未到达else语句,jquery,Jquery,当可见性通过display“隐藏”时,我试图完全隐藏span标记:没有一个可以完美工作,唯一的问题是else语句根本不工作。我的意思是,它应该发出警报并显示:阻塞,但它根本不是 $(document).ready(function () { $(".compPass").each(function () { if ($('.compPass').css("visibility") == "hidden") { $('.c

当可见性通过display“隐藏”时,我试图完全隐藏span标记:没有一个可以完美工作,唯一的问题是else语句根本不工作。我的意思是,它应该发出警报并显示:阻塞,但它根本不是

$(document).ready(function () {

        $(".compPass").each(function () {

            if ($('.compPass').css("visibility") == "hidden") {
                $('.compPass').css("display", "none");
            } 
            else {
                alert('');
                $('.compPass').css("display", "block");
            }
        });

    });
通过引用.each中的
$(“.compPass”)
,您正在引用该类页面上的所有元素。使用
$(this)
来引用当前元素:

您还可以使用以下函数重载将其替换为单个函数:

通过引用.each中的
$(“.compPass”)
,可以引用该类页面上的所有元素。使用
$(this)
来引用当前元素:

您还可以使用以下函数重载将其替换为单个函数:


css重载函数的属性。

Else语句不起作用,因为您没有按如下方式设置
visible
属性:

$(document).ready(function () {
    $(".compPass").each(function () {
            if ($('.compPass').css("visibility") == "hidden"){                
                $('.compPass').css("display", "none");
            }else{
                $('.compPass').css("display", "block");
                $('.compPass').css("visibility", "visible");
            }
    });
});
演示

像@RGraham建议的那样,
.comPass
将使用类
.comPass
切换所有html元素。如果您需要使用特定的功能,则应使用类似于单击功能或任何事件的功能,并在该功能中使用:

$(document).ready(function () {
    $(document).on("click", ".comPass", function (e) {
            if ($(this).css("visibility") == "hidden"){                
                $(this).css("display", "none");
            }else{
                $(this).css("display", "block");
                $(this).css("visibility", "visible");
            }
    });
});

Else语句不起作用,因为您没有按如下所示设置
visible
属性:

$(document).ready(function () {
    $(".compPass").each(function () {
            if ($('.compPass').css("visibility") == "hidden"){                
                $('.compPass').css("display", "none");
            }else{
                $('.compPass').css("display", "block");
                $('.compPass').css("visibility", "visible");
            }
    });
});
演示

像@RGraham建议的那样,
.comPass
将使用类
.comPass
切换所有html元素。如果您需要使用特定的功能,则应使用类似于单击功能或任何事件的功能,并在该功能中使用:

$(document).ready(function () {
    $(document).on("click", ".comPass", function (e) {
            if ($(this).css("visibility") == "hidden"){                
                $(this).css("display", "none");
            }else{
                $(this).css("display", "block");
                $(this).css("visibility", "visible");
            }
    });
});

你必须发布一个例子?当您更改显示时,可见性不会改变,它是一个CSS属性,所有属性都是它自己的,因此代码的其余部分应该不会对该条件产生影响?只是为了确保:您的浏览器没有缓存旧版本的java脚本(在我开始使用javascript时发生的情况),我更喜欢使用
$('.compPass')。是(':visible'))
您必须发布一个示例?当您更改显示时,可见性不会改变,它是一个CSS属性,所有属性都是它自己的,因此代码的其余部分应该不会对该条件产生影响?只是为了确保:您的浏览器没有缓存旧版本的java脚本(在我开始使用javascript时发生的情况),我更喜欢使用
$('.compPass')。是(':visible'))
此用法是否正确?这也将使用
.comPass
更改所有元素,对吗?否,它将依次确定每个元素的可见性。原始元素将始终使用元素序列中的第一个可见性属性,并将该逻辑应用于所有新元素。。我真的认为你需要一个活动来真正利用这个
。。太好了。。需要了解更多信息:)
此用法正确吗?这也将使用
.comPass
更改所有元素,对吗?否,它将依次确定每个元素的可见性。原始元素将始终使用元素序列中的第一个可见性属性,并将该逻辑应用于所有新元素。。我真的认为你需要一个活动来真正利用这个
。。太好了。。需要学习更多:)