如果使用jQuery .hasClass的语句将无法正常工作

时间:2011-09-04 16:47:43

标签: jquery class if-statement boolean

#box元素被隐藏或可见时,我正在尝试做不同的事情,所以我制作了这个脚本并附加到显示/隐藏按钮的onClick参数:

var box = null;

function showHide_Click() {
    box = $("#postBox").hasClass("hidden");

    if (box = true) {
        showBox();
        $("#postBox").removeClass("hidden");
    } else {
        hideBox();
    }
}

它适用于显示元素,但反向不起作用。有什么问题?

4 个答案:

答案 0 :(得分:5)

使用

box === true

if(box)

取代

box = true

答案 1 :(得分:2)

box = truetrue分配给box,然后if分配结果(true

你可以写if (box),因为它已经是一个布尔值。

如果它不是一个布尔值,那么你就需要编写

if (x === y)

答案 2 :(得分:2)

查看你的if语句。你要么需要一个双等号,要么完全删除它只是说

if (box)

答案 3 :(得分:1)

查看您的示例,我建议您使用显示/隐藏的jQuery slideToggle方法。试试这个

function showHide_Click() {
    $("#postBox").slideToggle();
    $("#box").slideToggle();
}

仅供参考。您的代码中的问题是box = true,它不会评估为任何条件检查,但会将true分配给box变量。