Skip to content Skip to sidebar Skip to footer

Returning Arrays And Childnodes

I have the following code: var actionsAllowed = $(packet).find('actionsAllowed').get(); var actionArray = $(actionsAllowed).each(function () { var actionNodes = this.childNode

Solution 1:

$(actionsAllowed).each returns the first element of the iteration. You seem to want this :

var actionArray = [];
$(actionsAllowed).each(function () {
    var actionNodes = this.childNodes;
    var actionNumber = actionNodes.length;
    var array = newArray(actionNumber)

    for (var i = 0; i < actionNodes.length; i++) {
        var action = actionNodes[i].nodeName
        array[i] = action
        console.log(action);
    }
    actionArray.push(array);
});    

EDIT : If what you want is a big array instead of an array of arrays, change it to

var actionArray = [];
$(actionsAllowed).each(function () {
    var actionNodes = this.childNodes;
    for (var i = 0; i < actionNodes.length; i++) {
        var action = actionNodes[i].nodeName
        actionArray.push(action);
        console.log(action);
    }
});    

Solution 2:

Here's another alternative:

var actionArray = $('actionsAllowed > *').map(function (el) { 
    return el.nodeName; 
}).get();

Post a Comment for "Returning Arrays And Childnodes"