jQuery/javascript基本逻辑问题

bar*_*ron 1 javascript jquery json getjson

我正在使用jQuery方法$.getJSON更新某些级联下拉列表中的数据,特别是如果没有为下拉列表返回任何内容的默认值,例如"NONE".

我只想澄清我的逻辑应该如何进行.

var hasItems = false; 
$.getJSON('ajax/test.json', function(data) {
hasItems = true;

    //Remove all items
    //Fill drop down with data from JSON


});

if (!hasItems)
{
    //Remove all items
    //Fill drop down with default value
}
Run Code Online (Sandbox Code Playgroud)

但我不认为这是对的.无论我是否收到数据,我都会进入该功能吗?我想我真的想检查数据对象包含的东西 - 设置我的布尔值hasItems.

ale*_*lex 6

您希望对回调内的返回数据进行所有检查,否则将在调用回调之前调用该条件,从而导致它始终是分配的初始值.


J.W*_*.W. 6

您应该在回调函数内部处理检查,请在此处查看示例.

var hasItems = false; 
$.getJSON('ajax/test.json', function(data) {
hasItems = true;

    //Remove all items
    //Fill drop down with data from JSON
if (!hasItems)
{
    //Remove all items
    //Fill drop down with default value
}

});
Run Code Online (Sandbox Code Playgroud)