为什么这个if语句没有做任何事情?

时间:2014-04-10 16:14:53

标签: javascript if-statement

相信我在这个上不需要HTML,因为if语句只处理cBox变量。它的作用是,点击一个按钮创建或关闭一个div,我已经测试了它们的功能并且它们正在工作,然而这些函数被调用的方式不起作用,我已经记录了输出但我没有显示它们在控制台中,这意味着代码由于某种原因没有通过if语句运行。

还尝试使用if (cBox == null),但它不起作用......

btnPress.onclick = function formConfirm() {
    var cBox = document.getElementById('cBox');
    console.log(" but cbox is "+cBox);
    if(cBox) {
        closecBox();
        console.log("cbox exists, closing ...");
    } else {
        opencBox();
        console.log("cbox does not exist, creating...");
    }
};

2 个答案:

答案 0 :(得分:1)

我不确定我理解你的问题,但是如果你的代码是这样的话似乎有效fiddle

function closeBox(elem){
        elem.parentNode.removeChild(elem);
        }
    function openBox(el){
        var el = document.createElement('div');
        el.setAttribute("id", "cBox");
        document.body.appendChild(el);
        }   

    var btnPress = document.getElementById('button');

    btnPress.onclick = function formConfirm() {
        var cBox = document.getElementById('cBox');
        if(cBox) {
            closeBox(cBox)
            console.log("cbox exists, closing ...");
        } else {
            openBox(cBox);
            console.log("cbox does not exist, creating...");
        }
    };

如果我不明白你的问题,抱歉浪费时间。

答案 1 :(得分:0)

伙计们感谢你们所有的回复,你们的提示肯定对解决这个问题很有帮助,我做了很多改变,但我失去了轨道,但这是工作代码

var btnPress = document.getElementById('theBtn');
btnPress.onclick = function formConfirm() {
    var cBox = document.getElementById('confirmBox');
        console.log("cbox is "+cBox);  
    if(cBox) {
        console.log("cbox exists, closing ...");
        closecBox();
    } else {
        opencBox();
        console.log("cbox does not exist, creating...");
    }
};

function opencBox() {
    var cBox = document.createElement('div');
    cBox.id = "confirmBox";
    document.body.appendChild(cBox);
    cBox.style.display="inline";
};

function closecBox() {
    var cBox = document.getElementById('confirmBox');
    cBox.style.display="none";
    document.body.removeChild(cBox);
};

我还使用了显示风格来再次测试动画的其他东西:),非常感谢你们所有的评论!他们真的帮助我找出了解决方案!