用$.each()來遍歷后台傳過來的json數據。直接遍歷傳過來的數據時就發生 Uncaught TypeError: Cannot use 'in' operator to search for 這個error。
原因是:因為我們后台傳過來的是json數據,但我們$.each()遍歷的數據是要javascript對象;所以要把它轉給javascript對象。可以使用 JSON.parse() || $.parseJSON() 這個兩個方法來轉換。
錯誤代碼:
<script> $(document).ready(function(){ $("#searchbtn").click(function(){ $("#searchres").html(""); $.get("test.php",{searchkeyword:$("#keyword").val()}) .done(function(data){ var html=''; $.each(data,function(i,v){ html += v.number; }); $("#searchres").append(html); }) .fail(function(xhr){ console.log(xhr.status); }) }); }); </script>
正確代碼:
<script> $(document).ready(function(){ $("#searchbtn").click(function(){ $("#searchres").html(""); $.get("test.php",{searchkeyword:$("#keyword").val()}) .done(function(data){ var html=''; $.each(JSON.parse(data),function(i,v){ html += v.number; }); $("#searchres").append(html); }) .fail(function(xhr){ console.log(xhr.status); }) }); }); </script>
