jQuery随机数不起作用

Wad*_*let 8 random jquery numbers

我试图让jQuery基于一个数字在我的网站主体上生成随机背景.所以我试图让它生成main1.jpg或main2.jpg并将其作为背景投入到身体中.

由于某种原因,它只生成main2.jpg.这是我的代码:

$(document).ready(function(){

    $("body").css({'background' : 'url(images/main1.jpg)'}).hide();
    $("body").css({'background' : 'url(images/main2.jpg)'}).hide();

    var randomNum = Math.floor(Math.random()*2); /* Pick random number */

    $("body").css({'background' : 'url(images/main:eq(' + randomNum + ').jpg)'}).show(); /* Select div with random number */

});
Run Code Online (Sandbox Code Playgroud)

谢谢,韦德

Dou*_*ner 19

看到你想要做什么是非常令人困惑的.现在你隐藏了两次身体,然后错误地添加了一个css规则,然后显示了身体.如果您只想设置随机背景,请执行以下操作:

$(document).ready(function(){
    var randomNum = Math.ceil(Math.random()*2); /* Pick random number between 1 and 2 */
    $("body").css({'background' : 'url(images/main' + randomNum + '.jpg)'});
});
Run Code Online (Sandbox Code Playgroud)

如果您想要添加两个divs并随机显示一个,请执行以下操作:

$(document).ready(function(){
    /* Pick random number between 1 and 2 */
    var randomNum = Math.ceil(Math.random()*2); 
    $.each([1,2], function(){
       var $div = $('<div class="background" style="background-image: url(images/main' + this + '.jpg)"></div>');
       if( this !== randomNum ) $div.hide();
       $div.appendTo( document.body );
    });
})
Run Code Online (Sandbox Code Playgroud)

  • @Wade,不用担心!对不起,如果我听起来有点侮辱,那么就是提出问题的地方!您对我的解决方案有何不同之处? (2认同)
  • 因为Math.random()可以返回0,所以使用ceil()可能会给出0作为结果.而是使用floor:Math.floor((Math.random()*2)+1) (2认同)