-1

我目前正在设计一个网站,并试图让它从几个列表中随机显示 3 条语句。我设法搜索并找到以下代码,但它一次只显示一件事,我如何修改它以显示列表中的 3 个不同项目(在单独的行上)?

<html>
<head>
<title>whynot?</title>
<script type="text/javascript">
var textarray = [
 "why not play some fifa?",
 "why not open a beer?",
 "why not call a relative?",
 "why not challenge someone to a duel?"
];

function RndText() {
  var rannum= Math.floor(Math.random()*textarray.length);
  document.getElementById('ShowText').innerHTML=textarray[rannum];
}

onload = function() { RndText(); }

</script>
</body>
    <body bgcolor="#FFFF00">
        <h1 style="text-align: center;">
            &nbsp;</h1>
        <h1 style="text-align: center;">
        &nbsp;</h1>
    <h1 style="text-align: center;">
        <span style="color:#000000;"><span style="font-family: 'lucida sans unicode', 'lucida grande', sans-serif;"><span style="font-size: 36px;"><span style="line-height: 16px;"><span style="background-color:#ffff00;">
<div id="ShowText"></div></span></span></span></span></span></h1>
</body>
</html>
4

4 回答 4

1

试试这个,这将为您提供distinct来自array.

function RndText() 
{
  var x=[];
  while(x.length !== 3)
  {
  var rannum= Math.floor(Math.random()*textarray.length);

   if(x.indexOf(rannum) === -1)
    {
  x.push(rannum);
  document.getElementById('ShowText').innerHTML += textarray[rannum] + "<br> <br> <br>";

    }

   }
}

更新:新链接

于 2013-04-08T15:22:59.977 回答
0

只需执行 RndText(); 功能3次:

onload = function() { RndText();RndText();RndText(); }

和:

function RndText() {
  var rannum= Math.floor(Math.random()*textarray.length);
var item=document.getElementById('ShowText');
  item.innerHTML=item.innerHTML+textarray[rannum];
}
于 2013-04-08T15:10:25.277 回答
0
function RndText() {
    for(var i = 0; i <= 3; i++){
        var rannum= Math.floor(Math.random()*textarray.length);
        document.getElementById('ShowText').innerHTML += textarray[rannum];
   }
}

您需要+=打开innerHTML它才能显示 3 个不同的。

于 2013-04-08T15:13:14.557 回答
0

这扩展了 Rajaprabhu 的上述答案,并将语句添加到三个单独的跨度中。

查看小提琴http://jsfiddle.net/talymo/7VNFM/

var textarray = [
    "why not play some fifa?",
    "why not open a beer?",
    "why not call a relative?",
    "why not challenge someone to a duel?"];


function RndText() {
    var x = [];
    var html = '';   
    while (x.length !== 3) {
        var rannum = Math.floor(Math.random() * textarray.length);
        if (x.indexOf(rannum) === -1) {
            console.log(x.length);
            x.push(rannum);
            $('#Phrase'+ x.length).html(textarray[rannum]);
        }
    }

}
于 2013-04-08T15:48:38.100 回答