アプリ版:「スタンプのみでお礼する」機能のリリースについて

XML内のテキストをオブジェクトのコンストラクタの引数に渡すことはできますか?

例:(これではできませんでした。)


--------------------------------------------------------------
ffdata.xml

<?xml version="1.0" encoding="UTF-8" ?>
<ffdata>
<chardef><!--キャラ登場時のステ(name,hp,mp,str,fig,tec,agi,int,mnd)-->
<ch1>アラゴルン,400,80,10,7,8,10,6,6</ch1>
</chardef>
</ffdata>

--------------------------------------------------------------
main.html


<script>
//************************************************オブジェクト
function charctor(name,hp,mp,str,fig,tec,agi,int,mnd){
this.name= name;
this.hp = hp;
this.mp = mp;
this.str = str;
this.fig = fig;
this.tec = tec;
this.agi = agi;
this.int = int;
this.mnd = mnd;
}

//************************************************ffdata.xmlファイルを読み込み

$(document).ready(function(){
$.ajax({
type: "GET",
url: "ffdata.xml",
dataType: "xml",
success: function(xml) { createObj(xml);},
error: function(){alert("xmlファイルの読み込みに失敗しました");}
});
});
//************************************************オブジェクト作成
function createObj(xml){
aragorn = new charctor($(xml).find("chardef").find("ch1").text());
$("#main").html(aragorn.str);//************************#main内に表示
}
</script>
<body id="main">
</body>

-------------------------------------------------------------

思いつきでやってうまく行かなかったんですが、何か出来そうな気がするんです。
間違いがあったら指摘していたけると助かります。

A 回答 (1件)

text()で返るのはただのテキストです。


王道的にはsplitで配列にして、それを引数にする必要があります。

var a = $(xml).find("chardef").find("ch1").text().split(",");
aragorn = new charctor(a[0],a[1],a[2],...);


もし楽をしたいなら、こんなですね。
この場合、xml内の文字列はダブルクオートで囲ってください。

aragorn = eval("new charctor(" + $(xml).find("chardef").find("ch1").text() + ")");
<ch1>"アラゴルン",400,80,10,7,8,10,6,6</ch1>
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!