2016-08-31 6 views
2

次のXMLコードをJQueryを使用してオブジェクトに変換したいと考えています。
これは私のXMLがどのように見えるかです:JQueryを使用した子ノードからオブジェクトへ

<league name="German 1st Bundesliga> 
    <club name="FC Bayern München"   coach="Ancelotti" stadium="Allianz Arena"  clubId="1000" /> 
    <club name="Borussia Dortmund"   coach="Tuchel"  stadium="Signal Iduna Park" clubId="1001" /> 
    <club name="Borussia Mönchengldabach" coach="Schubert" stadium="Borussia-Park"  clubId="1002" /> 
    <club name="FC Schlke 04"    coach="Weinzierl" stadium="Veltins-Arena"  clubId="1003" /> 
</league> 

は、これは、オブジェクト

var $leagueNode = $(response).find('league'); 

var clubList = []; 

for(var i=0; i < $leagueNode.children().length; i++){ 
    console.log($leagueNode.children()[i]); 
    var $clubNode = $($leagueNode.children()[i]).find('club');    
    var club = {}; 
    club.clubid = $clubNode.attr('clubid'); 
    club.name = $clubNode.attr('name'); 
    club.coach = $clubNode.attr('coach'); 
    club.stadium= $clubNode.attr('stadium'); 
    console.log(club); 
} 

コンソールに印刷されたオブジェクトはすべての属性のundefined示しを作成するための私のコードです。私のコードで何が間違っていますか?

+0

:これを試してみてください。何が問題ですか? – Tempux

+0

@ sudomakeinstall2の質問に変更しました – JohnDizzle

+0

@RoryMcCrossan JSで共通のオブジェクトを作成したいだけです。 – JohnDizzle

答えて

2

map()を使用してオブジェクトの配列を作成することができます。あなたは "それが動作しない" とはどういう意味ですか

var $leagueNode = $('<league name="German 1st Bundesliga"><club name="FC Bayern München" coach="Ancelotti" stadium="Allianz Arena" clubId="1000" /><club name="Borussia Dortmund" coach="Tuchel" stadium="Signal Iduna Park" clubId="1001" /><club name="Borussia Mönchengldabach" coach="Schubert" stadium="Borussia-Park" clubId="1002" /><club name="FC Schlke 04" coach="Weinzierl" stadium="Veltins-Arena" clubId="1003" /></league>'); 
 
var obj = $leagueNode.find('club').map(function() { 
 
    var $club = $(this); 
 
    return { 
 
    clubid: $club.attr('clubid'), 
 
    name: $club.attr('name'), 
 
    coach: $club.attr('coach'), 
 
    stadium: $club.attr('stadium'), 
 
    }; 
 
}).get(); 
 

 
console.log(obj);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

関連する問題