2016-04-01 4 views
2

このコードでは、最初の赤信号が表示されますが、ボタンをクリックすると変更されません。はい、私はこのような同様の質問があることを知っていますが、彼らは助けていないようです。あなたが何が間違っているか教えていただけたら、本当に感謝しています。私の信号灯シーケンスの色を変更するには

<!DOCTYPE html> 
<html> 
<body> 

<h1>JavaScript Task 3</h1> 

<p>This is my Traffic Light script</p> 

<img id = "light" src="Red Traffic light.jpg"> 

<button type="button" onclick="changeLights()">Change Lights</button> 

<script> 
var list = [ 
    "Red Traffic light.jpg", 
    "Red & Yellow Traffic light.jpg", 
    "Green Traffic light.jpg", 
    "Yellow Traffic light.jpg" 
]; 

var index = 0; 

function changeLights() { 

    index = index + ! 
    if (index == list.length - 1) { 
     index = 0; 
} 

var image = document.getElementById("light"); 
image.src=list[index]; 

</script> 

+5

最初の問題は、あなたが '}'あなたが追加したときに何が起こる '指数++' – NewToJS

+1

を '使用してインデックスに追加することができます!' 'index'に欠け、' changeLights() '関数を閉じていないのですか? –

+0

「ctrl shift i」を押すか、右クリックして要素を検査し、コンソールタブをクリックしてエラーを表示します。 – Anthony

答えて

1

私の回答に変更を示すコメントを追加しました。

  1. changeLights()機能を終了していません。
  2. index+!はタイプミスのようです。1を追加するにはindex++を使用してください。
  3. 最後のイメージがないので、ifステートメントを変更してください。

var list = [ 
 
    "http://imgur.com/FHT9OoG.jpg", 
 
    "http://imgur.com/XZ1PxGh.jpg", 
 
    "http://imgur.com/5DUX0Wy.jpg", 
 
    "http://imgur.com/WpeEMZU.jpg" 
 
]; 
 
var index = 0; 
 
function changeLights() { 
 
index++ // Add 1 to index. 
 
// If index is more than the array length, reset to 0 
 
// Or you can use: if(index == list.length){ 
 
if (index > list.length-1){ 
 
index = 0; 
 
} 
 
var image = document.getElementById("light"); 
 
image.src=list[index]; 
 
}
<img id = "light" src="http://imgur.com/FHT9OoG.jpg"> 
 
<button type="button" onclick="changeLights()">Change Lights</button>

ご質問があれば、以下のコメントを残して、私はできるだけ早くあなたに戻って取得しますしてください。

こちらがお役に立てば幸いです。ハッピーコーディング!私が見

+0

おかげで非常に歓迎助けを – bob

+0

@bobため – NewToJS

0

あなたはchangeLights()内1によってインデックスをインクリメントすることを意味しますか?インデックスに!を追加して文字列に変換しているようです。

さらに、changeLights()機能を終了していません(条件付きでを閉じたことがあります)。

ボタンをクリックするとエラーメッセージが表示されるかどうかコンソールを確認してください。

+1

これは文字列ではなく、エラーです。として!引用されていません。助けを –

+0

おかげで、私はすべてが明らかであると思います、あなたは変化を理解します。そうでない場合は、尋ねてください。あなたが理解できないことを説明してくれるだけではありません。 – bob

0

Firefoxでデバッガは、これらのエラーを与える:

SyntaxError: expected expression, got keyword 'if' lights.html:27:4ビット不可解なので、我々はそれに先立つ何を見て、私たちは!代わりの1を入力したことがわかり、私たちはそれを修正し、再度実行してください。

SyntaxError: missing } after function body lights.html:32:25ですので、修正してもう一度お試しください。

+0

おかげで助け – bob

関連する問題