如何在Javascript中为变量内部循环编写或者是否有替代解决方案?

时间:2014-08-08 13:17:03

标签: javascript for-loop

$.noConflict(); 
  jQuery(document).ready(function($){

var queuesArr = new Array();
var i;

for (i = 0; i < document.getElementById('qbeansLength').value; i++){
    queuesArr[i] = document.getElementById('queueID'+i).value}

var data = [
    {
        label: ' Queues',
        children: [
//I need to write the for loop here and make it like this {label: queuesArr[i] } but it is a variable
            { label: document.getElementById('queueID1').value },
            { label: queuesArr[2] }

        ]
    },
    {
        label: 'node2',
        children: [
            { label: 'child3' }
        ]
    }
];

$(function() {
    $('#tree1').tree({
        data: data
    });
});


});

大家好。我是javascript的新手。我需要在网页上打印一棵树。我使用this widget。我需要在变量中编写for循环,但它是一个变量,所以我认为这是不可能的。请帮帮我,我的问题有解决方案吗?问题是我从另一个jsp页面动态获取元素,因此子元素的数量和数组元素的数量都有所不同。

2 个答案:

答案 0 :(得分:2)

你的意思是这样的吗?

$.noConflict(); 
  jQuery(document).ready(function($){

var data = [
    {
        label: ' Queues',
        children: [
            // Filled in below
        ]
    },
    {
        label: 'node2',
        children: [
            { label: 'child3' }
        ]
    }
];

var queuesArr = new Array();
var i;
var qbeansLength = document.getElementById('qbeansLength').value;
for (i = 0; i < qbeansLength; i++) {
    data[0].children.push({label: document.getElementById('queueID'+i).value});
}

$(function() {
    $('#tree1').tree({
        data: data
    });
});


});

答案 1 :(得分:2)

要创建对象数组,请更改for循环以使用push()

var myArr = [];
for (i = 0; i < document.getElementById('qbeansLength').value; i++){
    myArr.push( {"label" : document.getElementById('queueID'+i).value });
}

只是引用它

var data = [
    {
        label: ' Queues',
        children: myArr
    },