【问题标题】:adding class on a random list item在随机列表项上添加类
【发布时间】:2012-05-22 01:48:35
【问题描述】:

我有一个包含列表项的无序列表。 我有一个名为“活动”的类,我希望将其随机添加到列表项中。我现在有这个:

// I want this class added on a random list item
$("#gallery li:first-child").addClass("on"); 

数学随机数?

【问题讨论】:

  • 感谢大家的快速回复!我随机(:p)选择了一个正确的答案。

标签: jquery random


【解决方案1】:
var random = Math.floor(Math.random() * 1000);

var $li = $("#gallery li");
$li.eq(random % $li.length).addClass("on");

【讨论】:

    【解决方案2】:

    试试下面的方法,

    var $li = $('#gallery li');
    $li.eq(Math.floor(Math.random()*$li.length)).addClass("on");
    

    编辑:已更新以避免重新查询 DOM 以获取 li

    【讨论】:

      【解决方案3】:
      var licount = $("#gallery li").length;
      var randomnumber=Math.floor(Math.random()*(licount+1));
      
      $("#gallery li:nth-child("+randomnumer+")").addClass("on");
      

      【讨论】:

        【解决方案4】:

        Math.random 是您获取随机数的方式,因此您需要做的就是获取一个介于 0 和 <li>s 的数量(减 1)之间的数字,并将类添加到其中。

        var $lis = $("#gallery li");
        $lis.eq( Math.floor( Math.random() * $lis.length ) ).addClass("on"); 
        

        【讨论】:

          【解决方案5】:

          如果你知道里数(这里是 10 里)

          rand=Math.floor(Math.random() * 10); // 0 to 9
          $("#gallery li").get(rand).addClass("on"); 
          

          其他

          var $li=$("#gallery li");
          rand=Math.floor(Math.random() * $li.length()); // 
          $li.eq(rand).addClass("on"); 
          

          【讨论】:

          • 您需要使用.eq(),而不是.get()。 .get() 返回一个 DOM 元素,而不是 jQuery 对象。
          • @rocket 抱歉,在您发表评论之前我更正了我的代码,但谢谢 :)
          猜你喜欢
          • 1970-01-01
          • 2014-10-14
          • 2023-03-11
          • 2013-09-24
          • 1970-01-01
          • 1970-01-01
          • 2013-05-21
          • 2012-10-26
          • 2011-01-21
          相关资源
          最近更新 更多