2014-07-19 56 views
1

我有一個空數組是這樣的:檢查空數組對象JSON使用jQuery

{"18":[]} 

但其他JSON是這樣的:

{ 
    "223": [ 
     { 
      "virtuemart_state_id": "1", 
      "state_name": "Alabama" 
     }, 
     { 
      "virtuemart_state_id": "2", 
      "state_name": "Alaska" 
     } 
    ] 
} 

我試圖檢查,像這樣:

jQuery("#paramsstates_chzn .search-field: input").click(function(){ 
      var country = jQuery("#country").val(), 
      chzn, 
      url = "http://localhost/data.php?id="+country; 

      jQuery.getJSON(url, function(data){ 
      console.log(data); 
      if (jQuery.isEmptyObject(data[country])) { 
       chzn = "<li class='active-result'>Empty</li>"; 
       jQuery("ul.chzn-results").html(chzn); 
       return; 
      } 
      $.each(data[country], function(i, rep){ 
       chzn += "<li class='active-result' id ='paramsstates_chzn_o_"+ i + "' >"+ rep.state_name +"</li>"; 
      }); 

     jQuery("ul.chzn-results").html(chzn); 
      }); 

     }); 

任何想法在哪裏我犯了錯誤,因爲它沒有更新ul.chzn結果類區域。

HTML:

<ul class="chzn-results"></ul> 

我想這樣過了長度檢查。但不工作。

(data[country].length === 0) 
+1

你所說的 '檢查' 意思? –

+0

失蹤「for url =」http://localhost/joomla/data.json; ..糾正它 –

+1

使用'if(Array.isArray(obj)=== true && obj.length === 0)'來檢查一個對象是否是一個數組並且是空的。 – techfoobar

回答

0

您可以使用用途:(data[country]).length ==0檢查,如果數組爲空

jQuery("#paramsstates_chzn .search-field: input").click(function(){ 
       var country = jQuery("#country").val(), 
       chzn, 
       url = "http://localhost/joomla/data.json"; 

       jQuery.getJSON(url, function(data){ 
       console.log(data); 
       if ((data[country]).length ==0) { 
        chzn = "<li class='active-result'>Empty</li>"; 
        jQuery("ul.chzn-results").html(chzn); 
        return; 
       } 
       $.each(data[country], function(i, rep){ 
        chzn += "<li class='active-result' id ='paramsstates_chzn_o_"+ i + "' >"+ rep.state_name +"</li>"; 
       }); 

      jQuery("ul.chzn-results").html(chzn); 
       }); 

      }); 
+0

感謝您的回覆。但我不知道爲什麼這不是更新這個區域

    :( – user3850712

    +0

    請看這裏http://plnkr.co/edit/8bmZSolmCMlReir850Bf?p=preview,檢查你的html代碼 – sylwester

    +0

    在第17行,你可以改變國家beteween 18我17看到結果 – sylwester

    1

    不需要jQuery,這是純JavaScript。

    var o = {"18":[]}; 
    var isEmpty = o["18"].length === 0;