Solved

Array next object

Posted on 2013-10-22
4
271 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

Don't Cry: How Liquid Web is Ensuring Security

WannaCry is just the start. Read how Liquid Web is protecting itself and its customers against new threats.

Question has a verified solution.

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

FAQ pages provide a simple way for you to supply and for customers to find answers to the most common questions about your company. Here are six reasons why your company website should have a FAQ page
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.

688 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