programing

jQuery에서 항목을 배열에 추가하려면 어떻게 해야 합니까?

bestprogram 2023. 3. 23. 23:14

jQuery에서 항목을 배열에 추가하려면 어떻게 해야 합니까?

var list = [];
$.getJSON("json.js", function(data) {
    $.each(data, function(i, item) {
        console.log(item.text);
        list.push(item.text);
    });
});
console.log(list.length);

list.length는 항상 0을 반환합니다.JSON은 파이어버그에서 검색해 봤는데 모양도 좋고 다 괜찮아 보여요.어레이에 항목을 추가할 수 없는 것 같습니다.무엇이 부족합니까?

부터$.getJSON비동기입니다.console.log(list.length);어레이가 채워지기 전에 코드가 기동하고 있습니다.이 문제를 해결하려면console.log콜백 내의 스테이트먼트:

var list = new Array();
$.getJSON("json.js", function(data) {
    $.each(data, function(i, item) {
        console.log(item.text);
        list.push(item.text);
    });
    console.log(list.length);
});

비동기적인 Ajax 요구를 하고 있기 때문에 목록 길이의 콘솔로그가 Ajax 요구가 완료되기 전에 발생합니다.

원하는 것을 실현하는 유일한 방법은 Ajax 콜을 동기화하는 것입니다.이를 수행하려면 .ajax를 사용하여 asynch : false를 전달합니다.다만, 유저가 브라우저로부터 크래시 아웃 할 필요가 있는 경우는, 콜이 반환될 때까지 UI 가 잠기므로, 이것을 권장하지 않습니다.

이게 도움이 되길..

var list = [];
    $(document).ready(function () {
        $('#test').click(function () {
            var oRows = $('#MainContent_Table1 tr').length;
            $('#MainContent_Table1 tr').each(function (index) {
                list.push(this.cells[0].innerHTML);
            });
        });
    });

언급URL : https://stackoverflow.com/questions/1353245/how-do-i-add-items-to-an-array-in-jquery