Solved

if (Math.random() > 0.5)

Posted on 2009-04-07
2
1,522 Views
Last Modified: 2012-06-27
Hello,

I have this small script that change on refresh. I want to make sure that it displays 50 / 50% to the visitors.

is if (Math.random() > 0.5) than correctly chosen?
is there a better way to do this?
<html > 
<head> 
<title>Random Images</title> 
<script type="text/javascript"> 
//<![CDATA[ 
var images1="image_1.jpg"; 
var imglink1="http://www.test1.com";
var alt1="test1";
 
var images2="image_2.jpg"; 
var imglink2="http://www.test2.com";
var alt2="test2";
 
function randomImage() { 
if (Math.random() > 0.5) {
document.getElementById("random").src=images1; 
document.getElementById("link").href=imglink1; 
document.getElementById("random").alt=alt1; 
}
else {
document.getElementById("random").src=images2; 
document.getElementById("link").href=imglink2; 
document.getElementById("random").alt=alt2; 
}
} 
onload=randomImage; 
//]]> 
</script> 
</head> 
<body > 
<div id="container"> 
<a href="" id="link"><img id="random" src="" alt=""/></a> 
</div> 
</body> 
</html>

Open in new window

0
Comment
Question by:mvanthof
2 Comments
 
LVL 42

Expert Comment

by:David S.
ID: 24094473
I'd use ">=" instead of just ">" because the range is between 0 (inclusive) and 1 (exclusive).

No, there is no better way to do it.
0
 
LVL 75

Accepted Solution

by:
Michel Plungjan earned 125 total points
ID: 24094894
However I would do this instead:

<html > 
<head> 
<title>Random Images</title> 
<script type="text/javascript"> 
//<![CDATA[
function crtImage(imgUrl,href,title) {
  this.imgUrl = imgUrl;
  this.href=href;
  this.title=title
} 
var myImages = new Array(
  new crtImage("image_1.jpg","http://www.test1.com","test1"),
  new crtImage("image_2.jpg","http://www.test2.com","test2")
); // note the lack of comma on the last item  
 
function randomImage() { 
  var rnd = parseInt(Math.random()*myImages.length);
  var imgObj = myImages[rnd];
  document.getElementById("random").src=imgObj.imgUrl; 
  document.getElementById("link").href=imgObj.href; 
  document.getElementById("link").title=imgObj.title; 
} 
window.onload=randomImage; 
//]]> 
</script> 
</head> 
<body > 
<div id="container"> 
<a href="" id="link"><img id="random" src="" alt=""/></a> 
</div> 
</body> 
</html>

Open in new window

0

Featured Post

Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article shows how to create and access 2-dimensional arrays in JavaScript.  It includes a tutorial in case you are just trying to "get your head wrapped around" the concept and we'll also look at some useful tips for more advanced programmers. …
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

813 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now