Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery-在特定时间内显示的随机元素_Javascript_Jquery_Html_Random - Fatal编程技术网

Javascript jQuery-在特定时间内显示的随机元素

Javascript jQuery-在特定时间内显示的随机元素,javascript,jquery,html,random,Javascript,Jquery,Html,Random,我想制作一个div,其中div的一个元素在短时间内随机变化(即:这是巴黎,这是苹果等等) 我有一行HTML: <div id="A"> THIS IS </div> <div id="B"> <div>AN APPLE</div> <div>PARIS</div> <div>PICASSO</div> </div> 有人能帮我吗? 提前谢谢 据我所知,您需要

我想制作一个
div
,其中
div
的一个元素在短时间内随机变化(即:这是巴黎,这是苹果等等)

我有一行HTML:

<div id="A">
  THIS IS
</div>

<div id="B">
  <div>AN APPLE</div>
  <div>PARIS</div>
  <div>PICASSO</div>
</div>
有人能帮我吗?

提前谢谢

据我所知,您需要此代码

<div id="A"></div>

<script type="text/javascript">
$(document).ready(function() {
  var myArray = ['AN APPLE','PARIS','PICASSO'];
  setInterval(function(){
    var rand = myArray[Math.floor(Math.random() * myArray.length)];
    $('#A').html('THIS IS '+rand);
  },1000);  
});
</script>

$(文档).ready(函数(){
var myArray=[“一个苹果”,“巴黎”,“毕加索];
setInterval(函数(){
var rand=myArray[Math.floor(Math.random()*myArray.length)];
$('#A').html('这是'+rand');
},1000);  
});

您可以将div文本放入数组中,并使用
Math.random()
返回随机元素并将其添加到
#A

$(“#B”).hide();
var text=$('#A').text();
var words=$(“#B div”).map(函数(){
返回$(this.text())
}).get();
setInterval(函数(){
$('#A').text(text+''+单词[Math.floor(Math.random()*words.length)];
},500)

这是
苹果
巴黎
毕加索

您只需使用
Math.random
setInterval
。下面的片段:

$(函数(){
var n=0;
setInterval(函数(){
n=数学地板((数学随机()*3));
$(“#B div”).hide();
$(“#B”).find('div:eq('+n+')).show();
},500);
});
#B div:not(:第一个孩子){
显示:无;
}

这是
苹果
巴黎
毕加索

这里有一种方法。希望这有帮助

<html>
   <head>
    <script type="text/javascript" src="jquery-1.11.3.min.js">    </script>
    <script>
    fruit = new Array("A Pear", "A strawberry", "An orange");
    cities = new Array("London", "New York", "Glasgow");
    artists = new Array("Monet", "Cezanne", "Da Vinci");

    changeValues = function(fruit, cities, artists) {
        var f = Math.floor((Math.random() * fruit.length-1) + 1);
        var c = Math.floor((Math.random() * cities.length-1) + 1);
        var a = Math.floor((Math.random() * artists.length-1) + 1);
        var things = "<div>" + fruit[f] + "</div><div>" + cities[c] + "</div><div>" + artists[a] + "</div>";
        $("#B").html(things);
        setTimeout(changeValues, 2500, fruit, cities, artists);
    }

    $(document).ready(function() {
        setTimeout(changeValues, 2500, fruit, cities, artists);
    });

    </script>

   </head>
   <body>  
      <div id="A">
    THIS IS
      </div>
    <div id="B">
      <div>AN APPLE</div>
      <div>PARIS</div>
      <div>PICASSO</div>
    </div>
      </div>

   </body>
</html>

水果=新阵列(“梨”、“草莓”、“橘子”);
城市=新阵列(“伦敦”、“纽约”、“格拉斯哥”);
艺术家=新阵列(“莫奈”、“塞尚”、“达芬奇”);
ChangeValue=功能(水果、城市、艺术家){
var f=Math.floor((Math.random()*fruit.length-1)+1);
var c=Math.floor((Math.random()*cities.length-1)+1);
var a=Math.floor((Math.random()*artists.length-1)+1);
var things=“”+水果[f]+“”+城市[c]+“”+艺术家[a]+“”;
$(“#B”).html(东西);
setTimeout(ChangeValue、2500、水果、城市、艺术家);
}
$(文档).ready(函数(){
setTimeout(ChangeValue、2500、水果、城市、艺术家);
});
这是
苹果
巴黎
毕加索

尝试使用类似的功能,但使用with function作为参数来选择要显示的元素

setInterval(function(){
  $("#B div").hide();
    $("#B div").eq(function() {
    return Math.floor(Math.random() * $("#B div").length);
  }()).show();
}, 500);

提供您的jquery代码。感谢您的回答!我不想使用数组,我以前就是这么做的!还有其他建议@NenadVracar吗?我真的不想总是使用纯文本(在某些div中,我需要链接、图片等),也许隐藏/显示解决方案会更好,你认为呢?我怎样才能做到@NenadVracar?谢谢你的回答!我不想使用数组,我以前就是这么做的!还有其他建议吗@DevSullo?很好,非常感谢@GuruprasadRao!可以关闭淡入淡出吗?只需使用
show()
而不是
fadeIn(200)
inside
setInterval
非常感谢@GuruprasadRao!明亮的随时快乐编码…)两个简单的问题!我不想重复这些话。有可能吗?如果我想在单击时更改这些单词,该怎么办?
setInterval(function(){
  $("#B div").hide();
    $("#B div").eq(function() {
    return Math.floor(Math.random() * $("#B div").length);
  }()).show();
}, 500);