Javascript不会超过前两行代码吗?

时间:2013-12-15 12:25:03

标签: javascript jquery

我正在运行此代码:

        if (div == '') {
            console.log("hi"),
            document.getElementById('divd').innerHTML = first,
            $('draggablelamb').addClass('fade'),
            $('droppable').addClass('bowl');
        }

当用户按下按钮时(我遗漏了变量以及elseifelse语句)。但是,当我在浏览器中运行它时,它只会超过前两行代码(console.log("hi")document.getElementById('divd').innerHTML = first),然后跳过其余代码并转到下一个elseif。它为什么这样做?我怎么能阻止它这样做?

更新

我现在知道它使用了以下所有代码行:

        console.log("Hi");
        document.getElementById('divd').innerHTML = first;
        console.log("Hello again");
        $('draggablelamb').addClass('fade');
        console.log("Bonjour");
        $('droppable').addClass('bowl');
        console.log("Guten Tag");

但也许不执行它?

2 个答案:

答案 0 :(得分:0)

您的选择器正在寻找元素 draggablelambdroppable,但他们找不到任何内容,因为HTML中没有这样的元素。

搜索不存在的东西会导致空的jQuery对象,它仍会接受会改变其中元素的调用,并且什么都不做。

如果您正在寻找具有这些名称的类的元素,那么您需要在选择器中的类名之前使用句号:

$('.draggablelamb').addClass('fade');
$('.droppable').addClass('bowl');

另外,正如Rajaprabhu Aravindasamy指出的那样,Javascript中的语句之间不使用逗号。虽然它在这种情况下仍然可以工作,因为可以在表达式之间使用逗号运算符,但在其他情况下会导致问题。

答案 1 :(得分:0)

if (div == '') {
    console.log("hi");
    $('#divd').html(first);
    $('.draggablelamb').addClass('fade');
    $('.droppable').addClass('bowl');
}

1。您在每行末尾都有逗号,。它应该是分号;

2。您是按类选择元素但缺少完整类选择器.。所以你应该$('draggablelamb')$('.draggablelamb')

3. 您已经为选择器使用了jQuery,因此您也可以使用jQuery编写innerHTML。像这样$('#divd).html(first);