Динамически создавать множественный массив jS / jQuery - PullRequest
0 голосов
/ 20 апреля 2011

У меня проблема с созданием определенного массива для одного из моих проектов.Мне нужно и массив всегда с этими полями:

[id |Тип |nbItems]

И затем на нем:

m_name: m_value:

Но это может быть случайным, я могу иметь от 1 до бесконечностиm_name / m_value.

[id | Type | nbItems] ->    m_name : weblink
                            m_value : http://xxx.com


[id | Type | nbItems] ->    m_name : text
                            m_value : Google

                            m_name : icon
                            m_value : icon.png

                            m_name : weblink
                            m_value : http://xxx.com

Надеюсь, это достаточно ясно ...

РЕДАКТИРОВАТЬ

function readItem()
{
    var array = XMLDoc.getElementsByTagName("m_params")[curParam].getAttribute("enc:arraySize");

// m_params => nBItem

    var node = XMLDoc.getElementsByTagName("item")[itemCpt].getElementsByTagName("m_type")[0];
    var type = node.childNodes[0].nodeValue;

// type

    node = XMLDoc.getElementsByTagName("item")[itemCpt].getElementsByTagName("m_id")[XMLDoc.getElementsByTagName("item")[itemCpt].getElementsByTagName("m_id").length-1];
    var id = node.childNodes[0].nodeValue;

// id

    var i;
    for (i = 0; i < array; i++) {
        readValue(i, XMLDoc);
    }

    itemCpt = itemCpt + i + 1;

    var child = XMLDoc.getElementsByTagName("m_childs")[curParam].getAttribute("enc:arraySize");
    curParam++;

    for (var c = 0; c < child; c++) {
        readItem(curParam, XMLDoc);
    }
} 

function readValue(i)
{

var item;

var node = XMLDoc.getElementsByTagName("m_params")[curParam].getElementsByTagName("m_name")[i];
item = node.childNodes[0].nodeValue;
// m_name

node = XMLDoc.getElementsByTagName("m_params")[curParam].getElementsByTagName("m_value")[i];
item = item.concat('\n' + node.childNodes[0].nodeValue);

// m_value

}

1 Ответ

0 голосов
/ 20 апреля 2011

Если вам нужно добавить элементы с некоторыми известными значениями, вы можете попробовать это:

var itemsList = [];

itemsList.push({
        id:1,
        Type:"Some",
        nbItems:[{
             m_name : "weblink",
             m_value : "http://xxx.com"
        }]
});


itemsList.push({
        id:2,
        Type:"AnotherSome",
        nbItems:[{
            m_name : "text",
            m_value : "Google"
        },{
            m_name : "icon",
            m_value : "icon.png"
        },{
            m_name : "weblink",
            m_value : "http://xxx.com"
        }]
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...