0

私は自分のコードで小さな障害に遭遇しました - 以下は私のコードです:

var actionsAllowed = $(packet).find('actionsAllowed');

これにより、firebug コンソールで次のように返されます。

オブジェクト[許可されたアクション]

「actionsAllowed」をクリックすると、パケットと正しいセクションに移動し、2 つのアクションがリストされています。

オブジェクトを展開すると、最終的に次のように表示されます。

Object[actions]

0
    actions

remove
    remove()

attributes
    []

baseURI
    "http://localhost:9000/testget#"

childElementCount
    2

childNodes
    NodeList[ActionOne, ActionTwo]

0
    ActionOne

1
    ActionTwo

length
    2

item
    item()

iterator
    iterator()

__proto__
    NodeListPrototype { item=item(), iterator=iterator()}

したがって、NodeList の下に正しいアクションが表示されます。

私が抱えている問題は、それらのアクションをそこから取り出してリストする方法がわからない、またはそれらを別の変数として使用できるようにする方法がわからないことです。

各子をログに記録する私の試み:

function getActionsAllowed() {
    var children = actionsAllowed.childNodes;
        for (var i = 0; i < children.length; i++) {
            console.log(children);
        }
}

問題は、「.childNodes」が「未定義」として返され続けることです。

これを行う別のより良い方法はありますか?それとも、これは正しいのですが、私は間違いを犯しましたか?

ありがとうございました。

敬具、

ゲイリー・シャーギル

編集:

1 つの結果だけの作業コード:

var currentState = $(packet).find('currentState').text();
var actionsBanned = $(packet).find('actionsBanned').text();

編集2:

コードを次のように更新しました。

$(packet).find('actionsAllowed').each(function () {
    var children = this.childNodes;
        for (var i = 0; i < children.length; i++) {
        var action = children[i].nodeName
            console.log(action);
        }
});

これは機能します=)各アクションを1つずつ記録するため、機能しています。console.log() をより便利なものに変更する方法を選択するだけの問題です (それぞれを個別に定義する必要があります...)。

問題が発生した場合は、新しいスレッドを作成し、ここからリンクします。

(私の関連スレッド: Returning Arrays and ChildNodes )

4

1 に答える 1