2017-11-08 8 views
-1

작성중인 배열에 문제가있어 jsTree를 채울 수 없습니다. 그것은처럼 보이는XML 데이터에서 jsTree에 대한 JSON 객체를 생성하십시오.

var myAry = []; 

    $(xml).find('group').each(function() { 

     myAry.push({ 
     "id": $(this).find('GroupID').text(), 
     "parent": "#", 
     "text": $(this).find('GroupName').text(), 

     }); 
    }); 

을 내가 콘솔에 [myAry] 덤프 때 :

jsTree는 JSON 데이터를 전달 할 수 있습니다, 그래서 jsTree이 같은 것 객체의 배열을 포맷하기 위해 노력하고있어 제대로 포맷 된 Array를 사용하지만, jsTree는 그것을 좋아하지 않습니다. 그러나 배열을 수동으로 만들면 jsTree는 다음과 같이 좋아합니다.

var testAry = [ 
        {"id": "42", "parent": "#", "text": "Foo"}, 
        {"id": "69", "parent": "#", "text": "Bar"}, 
        {"id": "1", "parent": "#", "text": "Dolphin"}, 

    ]; 

내 루프에 어떤 문제가 있습니까?

enter image description here

+1

내 Ary를 testAry 예제와 비교하면 어떨까요? – Taplar

+0

@Taplar Chrome의 콘솔 출력을 포함 시켰습니다. 내용은 동일하지만, [{...}, {...}, {...}]과 함께 맨 위의 셀 수를 잃어 버렸기 때문에 올바르게 형성되지 않았다고 믿게되었습니다. – raydlevel5

+1

https://jsfiddle.net/q3s3o4ja/2/ 나를 똑같이 보입니다. – Taplar

답변

-1

이것은 (의 jQuery 문서부터) 도울 수

은 $ .each() 함수는 반복 사용 $ (선택기) .each()와 동일하지 , 독점적으로, jQuery 객체를 통해.

사용중인 방법은 선택기 인수를 허용하지만 JSON 객체의 이름을 전달합니다.

$.each()을 사용해보세요.

+0

https://jsfiddle.net/q3s3o4ja/ @vashzak – Taplar

+0

@Taplar 감사합니다. OP에는 XML 소스가 포함되어 있지 않으므로 문서를 보냈습니다. – vashzak