javascript - 根据Jquery中的条件选择随机值

标签 javascript jquery random

请看下面的html

<div class="testclass" style="top:30px;">msg1</div>
<div class="testclass" style="top:60px;">msg2</div>
<div class="testclass" style="top:80px;">msg3</div>
<div class="testclass" style="top:100px;">msg4</div>
<div class="testclass" style="top:200px;">msg5</div>

选择小于623的随机值,并且该随机值不在元素的停止样式中,即不在30,60,80,100,200中。但是这些值会发生变化。 并且该随机值需要距离最高值至少多 30。这个怎么做 .

最佳答案

<!DOCTYPE html>
<html>
<head>
  <title>hello</title>
</head>
<body>

  <div class="testclass" style="top:30px;">msg1</div>
  <div class="testclass" style="top:60px;">msg2</div>
  <div class="testclass" style="top:80px;">msg3</div>
  <div class="testclass" style="top:100px;">msg4</div>
  <div class="testclass" style="top:200px;">msg5</div>

  <button>Generate Random number</button>

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>

    function isNotValid(arr, val){ // checks if the random value is valid
      var check = false;

      $.each(arr, function(v){
            if(val < (v+30)){
              check = true;
              return;
            }
      });

      return check;
    }    

    function getRandomNum(max, min) { // getting random value
      return parseInt(Math.random() * (max - min) + min);
    }

    $(document).ready(function(){
        $("button").click(function(){
            var topValues = [];

            $(".testclass").each(function(){ // stores [30, 60, 80, 100, 200] in topValues variable
               topValues.push(parseInt($(this).css('top')));
            });

            var randomValue = 0;

            do{
                 randomValue = getRandomNum(623, 0); // max, min for fetching random value. You can pass the smallest topValues as min to optimize the process
            } while(isNotValid(topValues, randomValue)); // fetch random value until its not valid


            alert(randomValue); // alert random value
        });
    });

  </script>

</body>

以上是完整的工作代码,但还可以更加完善。我相信这会对您有所帮助:)

关于javascript - 根据Jquery中的条件选择随机值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40213545/

相关文章:

mysql - 从具有数百万非顺序记录的mysql表中快速选择随机ID

c++ - 如何通过 boost 获得 0.5 增量的随机数?

javascript - Vue.js 无法使用模板正确渲染

javascript - 在指令中调用时,Angular JS Controller 元素未定义

jquery - 按行中最后一个单元格的背景颜色对表格进行排序

swift - 如何在 Swift 中从字符集中获取随机元素

javascript - Azure Functions [Node.js] : context. BindingData 不包含我的路由参数(如文档所示)

javascript - jQuery 错误附加 null 的子级

jquery - 悬停时逐行突出显示段落

javascript - $($ (".elem")[0]) 的 jQuery 最佳实践?