jquery each報 Uncaught TypeError: Cannot use 'in' operator to search for錯誤


用$.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>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM