Solved

Array next object

Posted on 2013-10-22
4
267 Views
Last Modified: 2013-11-19
Hello expert,

Thought I could get the next object in an array by
calling the array with [+1} next to it. But its not working.
How can I get the next array item. Full code below.

Thanks.

Allen in Dallas


<html>
<head>
<style type="text/css">

 body {font-family: arial;}
 </style>
<script type="text/javascript">
function ChangeIt()
{
var colors;
colors = new Array("red", "blue", "green", "yellow", "purple");

document.body.style.backgroundColor = colors[0];

var t = setInterval(function() {
    document.body.style.backgroundColor = colors[+1];
}, 3000);

}
</script>
</head>
<body>
This page begins with a red background and
changes the body background after three seconds.

The Javascript
function is set in header section and called
from the body.
</body>
<script type="text/javascript">
ChangeIt();
</script>
</body>
</html>
0
Comment
Question by:9apit
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
4 Comments
 
LVL 53

Accepted Solution

by:
COBOLdinosaur earned 500 total points
ID: 39592768
That will get blue and continue to get blue forever.  

You need to set an index variable and increment it:
document.body.style.backgroundColor = colors[0];
i=0;
var t = setInterval(function() {
    i=(i>=color.length) ? 0 : i+1;
    document.body.style.backgroundColor = colors[i];
}, 3000);

Open in new window



Cd&
0
 

Author Comment

by:9apit
ID: 39593983
Hello COBOL dinasaur,

Thanks for the help.
I inserted your excellent script
into the page with no result.

I'll bet its just a syntax error but
I can't find it.

Thanks

Allen in Dallas
change-j.html
0
 

Author Comment

by:9apit
ID: 39594014
Hello COBOL,

I found it
i=(i>=color.length) ? 0 : i+1;
should be
i=(i>=colors.length) ? 0 : i+1;

Works now

Thanks.

Allen
0
 

Author Closing Comment

by:9apit
ID: 39594022
Thanks for the excellent answer.

in the expression
 i=(i>=colors.length) ? 0 : i+1;

It says if I is greater than the length of the array then set i back to 1
Correct?
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Suggested Solutions

Does your audience prefer people in photos or no people? How can you best highlight what you’re selling? What are your competitors doing, and what can you do that is different and unique from them?  Continue reading to learn how to make your images …
When crafting your “Why Us” page, there are a plethora of pitfalls to avoid. Follow these five tips, and you’ll be well on your way to creating an effective page.
This video teaches users how to migrate an existing Wordpress website to a new domain.
The viewer will learn how to dynamically set the form action using jQuery.

733 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