だから私は、JSONからランダムに選択されたテキストの一部を作成しようとしています(同じオリジンポリシーの問題により、実際にはJSONPです)ファイルがWebアプリに表示されます。
次のように乱数を生成します。
function randomNumberCreator(numberOfOptions){
var randomNumber = Math.floor(Math.random()*numberOfOptions);
return randomNumber;
};
私のJSONコードは次のようになります(これはサンプルです-続きます):
otmjsonp({
"option2" : "this text",
"option3" : "that text",
"option4" : "some other text",
});
そして、次のようなことができることを望んでいました:
$(".choice1").html(JSON.option+randomNumberCreator(4));
しかし、これは機能していないように見えるので、手の込んだ回避策を考え出す必要がありました (これは本当にばかげています、私は知っています):
function updateTree(){
$.ajax({
url:"http://www.WEBSITE.com/json/newotmtree.php",
type: "GET",
dataType: "jsonp",
jsonpCallback: "otmjsonp",
async: false,
success: function(JSON){
$(".initialChoices a").each(function(){
$(this).show();
});
function rollDice(){
diceRoll = randomNumberCreator(6);
switch(diceRoll){
case 1:
$(".choice1").html(JSON.option1)
$(".choice2").html(JSON.option2)
$(".choice3").html(JSON.option3)
break;
case 2:
$(".choice1").html(JSON.option1)
$(".choice2").html(JSON.option5)
$(".choice3").html(JSON.option6)
break;
case 3:
$(".choice1").html(JSON.option1)
$(".choice2").html(JSON.option8)
$(".choice3").html(JSON.option9)
break;
case 4:
$(".choice1").html(JSON.option1)
$(".choice2").html(JSON.option11)
$(".choice3").html(JSON.option1)
break;
case 5:
$(".choice1").html(JSON.option1)
$(".choice2").html(JSON.option3)
$(".choice3").html(JSON.option4)
break;
case 6:
$(".choice1").html(JSON.option1)
$(".choice2").html(JSON.option4)
$(".choice3").html(JSON.option9)
break;
default:
alert("switch fail");
}
};
rollDice();
var option1 = JSON.option1;
var option2 = JSON.option2;
var option3 = JSON.option3;
var option4 = JSON.option4;
var option5 = JSON.option5;
var option6 = JSON.option6;
var option7 = JSON.option7;
var option8 = JSON.option8;
var option9 = JSON.option9;
var option10 = JSON.option10;
var option11 = JSON.option11;
},
error:function(){
alert("error");
}
}); };
完全を期すために、HTML を次に示します。
<ul class="initialChoices">
<li><p><a class = "choice1" href="#">AJAX FAIL</a></p></li>
<li><p><a class = "choice2" class="button" href="#">AJAX FAIL</a></p></li>
<li><p><a class = "choice3" class="button" href="#">AJAX FAIL</a></p></li>
</ul>
JSONP 応答を真にランダムにする方法はありますか (私が望んでいたことのように)、またはこの醜い解決策にこだわっていますか?
ありがとう!