每个div中的随机数不同

时间:2016-09-19 19:59:06

标签: php jquery html

这可能很简单,但我无法让它发挥作用。

我有工作代码在div中输入随机数,但它在页面上的所有div中输入相同的随机数。

如何在每个div中输入不同的随机数? 这是我的代码:

<script>
    var randomNumber = Math.random();
    var num = Math.floor((randomNumber * 75) + 15);

    jQuery('#sale').each(function() {
        jQuery(this).find('.savings').append(num);
    });
</script>

是的我循环#所以因为类在里面,我应该在类本身上循环吗? 这是html:

<div class="col-md-6 itemcol">          
<div class="">  
<div id="sale" class="sale" style=""><span class="savings"></span>% OFF<br></div>

解决。这是最终代码,如果其他人发现它有用,将$更改为jQuery并将调整后的数字调整到15-75之间。

<script>
jQuery(document).ready(function() {
  jQuery("#sale .savings").each(function(){
        jQuery(this).text(createRandom());
    });

function createRandom() {
        var Num = Math.floor((Math.random() * (75 - 15) + 1) + 15 );
        return Num;
    } 
});     
</script>

3 个答案:

答案 0 :(得分:0)

从您的代码中,我假设您希望循环使用保存类的所有div,并为每个div添加不同的随机数。请尝试以下代码。      

jQuery('.savings').each(function() {
 var randomNumber = Math.random();
   var num = Math.floor((randomNumber * 75) + 15);
      $(this).append(num);

    });
</script>

答案 1 :(得分:0)

因为你在一个变量中存储一个值,并且一直打印出变量而不在循环中更新它。

<script>
   var randomNumber = Math.random();
   jQuery('#sale').each(function() {
     var num = Math.floor((randomNumber * 75) + 15);
     if(jQuery(this).hasClass('.savings')){
       jQuery(this).append(num);
     }
   });
</script>

您还可以执行以下操作:

<script>
   var randomNumber = Math.random();
   jQuery('.savings').each(function() {
     var num = Math.floor((randomNumber * 75) + 15);
     jQuery(this).text(num);
   });
</script>

答案 2 :(得分:-1)

试试这个:

$(document).ready(function() {

    $("#sale .savings").each(function(){
        $(this).text(createRandom());
    })

    function createRandom() {
        var Num = Math.floor((Math.random() * (75 - 15) + 1) + 15 );
        return Num;
    }       
})

最终代码:

$(document).ready(function() {
  
  $("#sale .savings").each(function(){
    $(this).text(createRandom());
   })
  
  function createRandom() {
    var Num = Math.floor((Math.random() * (75 - 15) + 1) + 15 );
    return Num;
    }       
})          
.savings {
  border: 2px solid red;
  width: 200px;
  height: 30px;
  margin-bottom: 1px;
}
<div id="sale">
  <div class="savings"></div>
  <div class="savings"></div>
  <div class="savings"></div>
  <div class="savings"></div>
</div>    
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>