(Сеть Vis.js) Как я могу поместить массив узлов в цикл, чтобы получить мои данные? - PullRequest
0 голосов
/ 06 октября 2019

У меня есть несколько div, содержащих данные, которые я хочу использовать в качестве id , label , title и т. Д. Для узлов моей сети.

Я сделал цикл for, который получает все существующие div с определенным классом, а затем сохраняет содержимое всех дочерних элементов div в переменных. Чтобы сгенерировать столько узлов, сколько есть div, я предполагаю, что следующим шагом является помещение массива узлов в цикл, но если я это сделаю, сеть не загружается.

Вот кодчто у меня есть сейчас: он генерирует только один узел, содержащий данные последнего div, так как массив узлов находится вне цикла. Как правильно поставить это в цикл?

    var nombreNodes= $('.personnage');
    for (var i = 0; i < nombreNodes.length; i++) {
        var nodesId = document.getElementsByClassName('id')[i].innerHTML;
        var nodesLabel = document.getElementsByClassName('label')[i].innerHTML;
        var nodesTitle = document.getElementsByClassName('title')[i].innerHTML;
        var nodesGroup = document.getElementsByClassName('group')[i].innerHTML;
        var nodesFontSize = document.getElementsByClassName('fontSize')[i].innerHTML;
        var nodesFontColor = document.getElementsByClassName('fontColor')[i].innerHTML;
        var nodesFontFace = document.getElementsByClassName('fontFace')[i].innerHTML;
    }

    // create an array with nodes
    var nodes = [
        {id: nodesId, 
        label: nodesLabel, 
        title: nodesTitle, 
        group: nodesGroup, 
        font: nodesFontSize + ' ' + nodesFontFace + ' ' + nodesFontColor},
    ];

1 Ответ

0 голосов
/ 07 октября 2019

Как я думаю, вам нужно добавить узлы в массив, который будет доступен вне цикла for. Следующий пример должен работать (в настоящее время не проверено)

var nodes = [];
var nombreNodes= $('.personnage');
for (var i = 0; i < nombreNodes.length; i++) {
    var nodesId = document.getElementsByClassName('id')[i].innerHTML;
    var nodesLabel = document.getElementsByClassName('label')[i].innerHTML;
    var nodesTitle = document.getElementsByClassName('title')[i].innerHTML;
    var nodesGroup = document.getElementsByClassName('group')[i].innerHTML;
    var nodesFontSize = document.getElementsByClassName('fontSize')[i].innerHTML;
    var nodesFontColor = document.getElementsByClassName('fontColor')[i].innerHTML;
    var nodesFontFace = document.getElementsByClassName('fontFace')[i].innerHTML;

    nodes.push({
        id: nodesId, 
        label: nodesLabel, 
        title: nodesTitle, 
        group: nodesGroup, 
        font: nodesFontSize + ' ' + nodesFontFace + ' ' + nodesFontColor
    });
}
// This dataset can be added to the vis.network
var dataSet = new vis.DataSet(nodes);
...