it-swarm.com.ru

jsTree: как получить все узлы из jstree?

Как получить все присутствующие узлы в jsTree?

Я строю JSTree с XML

Root
     -----A
          -----A1
               -----A1.1
               -----A1.2
          -----A2
               -----`A2.1`
               -----A2.2

     -----B
          -----B1
          -----B2

     -----C
          -----C1
               -----C1.1
               -----C2.2

Я хочу, чтобы массив всех узлов (ID) присутствовал в jsTree следующим образом

ожидаемый результат: [Root, A, A1, A1.1, A1.2, A2, A2.1, A2.2, B, B1, B2, C, C1, C1.1, C2.2]

10
StackOverFlow

Решение с примером:)

var xmlString = $("#tree").jstree("get_xml");   
    var xmlDOM = $.parseXML(xmlString);

    var IDList =[];
var items = $(xmlDOM).find('root item');
$.each (items, function(key, val){
    IDList.Push($(val).attr('id'));
})

IDList.pop();

xmlString =

<root>  
        <item id="A" parent_id="0" state="close">  
            <content><name>Charles Madigen</name></content>                
        </item>
        <item id="A1" parent_id="A" state="close">  
            <content><name>Charles Madigen</name></content>                
        </item>
          .
          .
</root>

Результат: Root, A, A1, A1.1, A1.2, A2, A2.1, A2.2, B, B1, B2, C, C1, C1.1, C2.2

:)

5
StackOverFlow

От документация :

.get_json ( node , li_attr , a_attr )

Эта функция возвращает массив узлов дерева, преобразованных обратно в JSON.

Больше информации о той же функции из этот документ :

Эта функция проходит по всему дереву и экспортирует его как JSON. Обратитесь к разделу "Источники данных", чтобы увидеть формат вывода.

Если в качестве первого аргумента указывается узел, в экспорт включается только этот узел и его дочерние элементы, в противном случае экспортируется все дерево.

Просто найдите и вы найдете! :)

12
montrealist

Вы можете пройти через каждый элемент узла и поместить его идентификатор в массив через:

var idList = [];
var jsonNodes = $('#tree').jstree(true).get_json('#', { flat: true });
$.each(jsonNodes, function (i, val) {
    idList.Push($(val).attr('id'));
})
2
MDummy
var treeData = $('#MyTree').jstree(true).get_json('#', {flat:false})
// set flat:true to get all nodes in 1-level json
var jsonData = JSON.stringify(treeData );
1
M2E67