公司要做一个抽奖程序,我找了一个javascript的,但不能实现中奖者不能再次中奖的问题,请问如何能实现?
另参加抽奖人的名单能否从一个.txt文本里读取?
以下是源代码,使用了jquery1.7.1
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  <meta http-equiv="Content-Language" content="zh-CN"/>
  <title>新年抽奖</title>
  <script type="text/javascript" src="jquery-1.7.1.min.js"></script>
  <style type="text/css">
    body {text-align:center;padding-top:50px;}
#Result {border:3px solid #40AA53;margin:0 auto;text-align:center;width:400px;padding:50px 0;background:#efe;}
#ResultNum {font-size:50pt;font-family:Verdana}
#Button {margin:50px 0 0 0;}
#Button input {font-size:40px;padding:0 50px;}
  </style>
  <script type='text/javascript'>
  <!--
  var g_Interval = 10;
  var g_PersonCount = 4;//参加抽奖人数
  var g_Timer;
  var g_Staff = ['23rrefe','2222233','333333333','444444444'];//抽奖员工名单
  var num;
  var winNum;
  var running = false;
  function beginRndNum(trigger){
   if(running){
running = false;
clearTimeout(g_Timer);
     $(trigger).val("开始");
$('#ResultNum').css('color','red');
}
else{
running = true;
$('#ResultNum').css('color','black');
     $(trigger).val("停止");
beginTimer();
}
  }
  
  function updateRndNum(){
var num = Math.floor(Math.random()*g_PersonCount);
var winNum = g_Staff[num];
$('#ResultNum').html(winNum);
  }
  
  function beginTimer(){
g_Timer = setTimeout(beat, g_Interval);
  }  function beat() {
g_Timer = setTimeout(beat, g_Interval);
    updateRndNum();
  }
  //-->
  </script>
</head>
<body>
<h1>抽奖结果</h1>
<div id="Result">
<span id="ResultNum">0</span>
</div>
<div id="Button">
<input type='button' value='开始' onclick='beginRndNum(this)'/>
</div>
</body>
</html>

解决方案 »

  1.   

    http://www.w3school.com.cn/js/jsref_obj_array.asp
      

  2.   


    <html>
    <head>
      <meta http-equiv="Content-Language" content="zh-CN"/>
      <title>新年抽奖</title>
      <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
      <style type="text/css">
      body {text-align:center;padding-top:50px;}
    #Result {border:3px solid #40AA53;margin:0 auto;text-align:center;width:400px;padding:50px 0;background:#efe;}
    #ResultNum {font-size:50pt;font-family:Verdana}
    #Button {margin:50px 0 0 0;}
    #Button input {font-size:40px;padding:0 50px;}
      </style>
      <script type='text/javascript'>
      <!--
      var g_Interval = 10;
      var g_PersonCount = 0;//参加抽奖人数
      var g_Timer;
      var g_Staff = [];//抽奖员工名单
      var num;
      var winNum;
      var running = false;$(function(){
        $.ajax({
        url:"text.txt",
        cache:false,
        success:function(data){
        var a = data.split("\n");
        for(var i=0;i<a.length;i++){
        if(a[i]!="") g_Staff.push(a[i]);
        }
        g_PersonCount = g_Staff.length;
        }
        })
    })
    function beginRndNum(trigger){
      if(running){
    running = false;
    clearTimeout(g_Timer); 
    $(trigger).val("开始");
    $('#ResultNum').css('color','red');
        for(var i=num;i<g_Staff.length-1;i++){
          g_Staff[i] = g_Staff[i+1];
        }
        g_Staff.pop();
        g_PersonCount = g_Staff.length;
      }
      else{
    running = true;
    $('#ResultNum').css('color','black');
    $(trigger).val("停止");
    beginTimer();
      }
    }
       
    function updateRndNum(){
      num = Math.floor(Math.random()*g_PersonCount);
      var winNum = g_Staff[num];
      $('#ResultNum').html(winNum);
    }
       
    function beginTimer(){
      g_Timer = setTimeout(beat, g_Interval);
    }function beat(){
      g_Timer = setTimeout(beat, g_Interval);
      updateRndNum();
    }
      //-->
      </script>
    </head>
    <body>
    <h1>抽奖结果</h1>
    <div id="Result">
    <span id="ResultNum">0</span>
    </div>
    <div id="Button">
    <input type='button' value='开始' onclick='beginRndNum(this)'/>
    </div>
    </body>
    </html>
    text.txt UTF-8编码aaaa
    bbbb
    cccc
    dddd
    eeee
      

  3.   

     像这种经常要进行删除操作,而且 没有顺序要求的数组,我一般都是直接用对象代替
    var g_Staff = {'23rrefe':1,'2222233':1,'333333333':1,'444444444':1};delete g_Staff['23rrefe']