2016-07-22 43 views
0

我有以下的jQuery代碼,其中我想用ajax得到一些數據,然後填充一個選擇,我放在我的HTML文件的身體:的Javascript/jQuery的阿賈克斯選擇不填充

$.ajax({ 
    url: 'myurlhere', 
    method: 'GET', 
    async: false, 
    success: function(result) { 
     $.each(result, function(i, value) { 
      $('#myselect').append($('<option>').text(value).attr('value', value)); 
     }); 
    } 
}); 
從Ajax調用

結果得到這樣的數據:

{ 
    "651":{ 
     "name":"somename", 
     "stts":{ 
     "opt1":2, 
     "opt2":1, 
     "opt3":"0" 
     } 
    }, 
    "659":{ 
     "name":"someothername", 
     "stts":{ 
     "opt1":2, 
     "opt2":1, 
     "opt3":"0" 
     } 
    } 

} 

這是HTML:

<select id="#myselect"></select> 

我可以發即收集數據但不填充SELECT。

我在做什麼錯?

+1

'<選擇ID = 「#myselect」>'應'<選擇ID = 「myselect」>' –

+2

''。從'id'屬性中刪除'#'。 –

回答

2

您需要遍歷對象並使用屬性來獲取值以顯示在html中。即:value.name

$.ajax({ 
     url: 'myurlhere', 
     method: 'GET', 
     async: false, 
     success: function(result) { 
      $.each(result, function(i, value) { 
       // Access name with value.name etc.  
       $('#myselect').append($('<option>').text(value.name).attr('value', value.name)); 
      }); 
     } 
}); 

同樣如@Alex Kudryashev指出的,你的選擇元素應該是:

<select id="myselect"></select> 
+0

好吧,它仍然沒有將數據附加到select中,但我添加了這個:console.log(value.name);在循環內部,它顯示在控制檯中,所以這意味着唯一不工作的部分是追加的 – gafasmill

+0

@gafasmill是否解決了追加問題? –

+0

是的,謝謝排序謝謝:) – gafasmill