2011-09-19 3 views
1

PHPのようにランダムなフィールドを設定したいとします。私はjavasccriptを使って同じことをすることを知っていません。そのようなことをする方法は可能ですか?前もって感謝します。PHP simple if文をJavascriptに変換するには?

  <?php $random = rand(1,3); ?> 

      <?php if ($random == 1) : ?> 
       <div id="myContent"> 
       </div> 
      <?php endif; ?> 

      <?php if ($random == 2) : ?> 
       <div id="myContent2"> 
       </div> 
      <?php endif; ?> 

      <?php if ($random == 3) : ?> 
       <div id="myContent3"> 
       </div> 
      <?php endif; ?> 

答えて

1
// generate a random number between 1 and 3 (inclusive) 
var rand=Math.floor(Math.random()*3)+1 

if (rand==1) { 
    document.write("first content"); 
} 

if (rand==2) { 
    document.write("second content"); 
} 

if (rand==3) { 
    document.write("third content"); 
} 
+1

また、 'rand'に' 0'を含みます。 – pimvdb

+1

'rand'は' Math.floor(Math.random()* 3)+ 1'でなければなりません。 1-3から取得する。 –

+0

@Rocket:ありがとう、それを修正しました – Bluewind

1

私はjQueryと、次の組み合わせを提案:

HTML

<div id="myContent1"> 
    <p>Alternative content 1</p> 
</div> 

<div id="myContent2"> 
    <p>Alternative content 2</p> 
</div> 

<div id="myContent3"> 
    <p>Alternative content 3</p> 
</div> 

はCSS

#myContent1, #myContent2, #myContent3 { 
    display: none; 
} 

JS

1)jQueryの

2)

<script type="text/javascript"> 
    function randint(min, max) { 
     var res; 
     do { 
      res = Math.floor(Math.random() * (max - min + 1)) + min; 
     } while (res > max); 
     return res; 
    } 
    var rnd = randint(1, 3); 
    $('#myContent' + rnd).show(); 
</script> 

サンプルフィドル追加:http://jsfiddle.net/uXfcx/を。 Ctrlキー+ Enterを押して実行する/再実行

+0

私はBluewindの答えに酷評していませんでしたが、とにかく、それは非常に**ないです** document.writeを使ってお勧めします – Guard

+0

あなたの 'while'ループを詳しく教えてください。代入の後で 'res ='は常に '<= max'になりませんか? – pimvdb

+0

@pimvdb丸め誤差のため、Math.random *が1になる可能性は非常に低いです(その可能性はあります)。 – Guard

1

簡易な答えをいくつかのjQuery

$(document).ready(function(){ 
    switch(Math.floor(Math.random()*3)+1){ 
     case 1: $('body').append('<div id="myContent1">Content 1</div>'); break; 
     case 2: $('body').append('<div id="myContent2">Content 2</div>'); break; 
     case 3: $('body').append('<div id="myContent3">Content 3</div>'); break; 
    } 
}); 
1
var num = Math.floor(Math.random()*3) + 1; 
switch(num) { 
    case 1: // refactor me 
     var div = document.createElement("div"); 
     div.setAttribute("id", "myContent" + num); 
     document.body.appendChild(div); 
     break; 
    // etc 
} 

非常にシンプルなものとなしjQueryを使って

+0

これを愛する。不要なライブラリやdocument.writeを避けていただきありがとうございます。 –

0

一つの解決策:-)関数を作成することですlike:

function showRandomContent() { 
    var randomNo=Math.floor(Math.random()*3)+1; //generates random number between 1 and 3 

    switch (randomNo) { 
     case 1: 
      document.getElementById("MyContent").innerHTML = Content1; 
      break; 
     case 2: 
      document.getElementById("MyContent").innerHTML = Content2; 
      break; 
     case 3: 
      document.getElementById("MyContent").innerHTML = Content3; 
      break; 
    } 
} 

ここで、あなたのHTMLにID MyContentのdivを含めることです。

<div id="MyContent"></div> 

上記の関数showRandomContent()には、乱数に基づくコンテンツが含まれます。

関連する問題