2012-07-11 73 views
1

所以我想显示随机div的,我在这里发现了这个计算器的解决方案:Showing random divs using Jquery显示与JavaScript随机格

与正确答案使用此代码:http://jsfiddle.net/nick_craver/RJMhT/

所以我想要做的上述情况,但对于我的生活,我不知道如何。

我认为这将是作为

<html> 
<head> 
<script type="text/javascript"> 
var divs = $("div.Image").get().sort(function() { 
    return Math.round(Math.random())-0.5; //random so we get the right +/- combo 
    }).slice(0,4) 
$(divs).appendTo(divs[0].parentNode).show();​​ 
</script> 
<style type="text/css"> 
div.Image { 
    display: none; 
}​ 
</style> 
</head> 
<body> 
    <div class="Image"><img src="/image1.jpg">1</div> 
    <div class="Image"><img src="/image2.jpg">2</div> 
    <div class="Image"><img src="/image3.jpg">3</div> 
    <div class="Image"><img src="/image4.jpg">4</div> 
    <div class="Image"><img src="/image5.jpg">5</div> 
    <div class="Image"><img src="/image6.jpg">6</div> 
    <div class="Image"><img src="/image7.jpg">7</div>​ 
</body> 
</html> 

但显然不是那么简单,因为什么也不显示我的屏幕上。有人能帮助我吗?我认为对于那些对JavaScript没有多少了解的人来说,应该真的很容易。

谢谢你!

+1

这不是一个很好的随机排序的DIVS。如果你运行了很多次,你会发现某些组合的出现比机会预测的要多得多。一个更好的随机洗牌可能是[Fisher-Yates算法](http://en.wikipedia.org/wiki/Fisher-Yates_shuffle)。 – 2012-07-11 03:05:56

+0

相关:http://www.robweir.com/blog/2010/02/microsoft-random-browser-ballot.html – Guffa 2012-07-11 21:22:08

回答

4

您正在解析页面正文的HTML代码之前正在运行脚本,因此元素尚不存在。

放入ready活动页面代码:

$(document).ready(function(){ 
    // your Javascript code goes here 
}); 

你也缺少包括jQuery库,如康纳显示。

+0

所以JavaScript会阅读如下,是否正确? 如果是这样,它仍然无法正常工作......也许我的网页上有某些内容有冲突,或者还有更多内容出现? – user1411876 2012-07-11 01:43:43

+0

如果难以阅读,我基本上添加了jquery代码并将代码包装在$(document).ready(function(){和 })之间; 什么也没有显示出来,并且源代码显示我的代码在那里:/ – user1411876 2012-07-11 01:46:34

+0

@ user1411876:是的,应该可以工作。注释掉CSS规则,以便看到图像显示出来。然后检查浏览器中的控制台是否有Javascript错误消息。 – Guffa 2012-07-11 01:56:05

2

您需要导入jQuery库。

你的JavaScript代码之前添加

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 

<head>标签。