2013-10-23 54 views
0

我在搞亂JavaScript並且想要一個帶有3個鏈接的彩色正方形,並且根據鏈接我點擊,正方形會更改顏色。我不能讓它工作,我不知道我哪裏錯了..給鏈接賦予onclick函數

的index.html

<!doctype html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <title>Test Page 2</title> 
    <script src="switch.js" type='text/javascript'></script> 
</head> 
<body> 
    <img id='square' src="img/blue.png"><br> 
    <a href="#" id='blue'>Blue!</a> 
    <a href='#' id='red'>Red!</a> 
    <a href='#' id='green'>Green!</a> 
</body> 
</html> 

switch.js

var switch = (function() { 
    var red = document.body.getElementById('red'); 
    var square = document.body.getElementById('square'); 
    red.onclick = function() { 
     square.src = 'img/red.png'; 
    } 
})(); 
+1

嘗試'的document.getElementById( '紅')'和'的document.getElementById( '正方形');' – putvande

+2

別t使用'switch'作爲變量名,這是一個使用我的javascript的標記。 – ElliotM

回答

1

你有兩個問題。

首先你正在使用一個名爲switch的變量,那是一個否定的。開關是一個保留字,因爲它是一個開關語句。重命名它。

var xswitch = (function() { 

二,這是因爲您在頁面上存在元素之前運行代碼。它需要在onload下執行,文件dom加載[ready],或者需要在頁面底部添加腳本。

<!doctype html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <title>Test Page 2</title> 
</head> 
<body> 
    <img id='square' src="img/blue.png"><br> 
    <a href="#" id='blue'>Blue!</a> 
    <a href='#' id='red'>Red!</a> 
    <a href='#' id='green'>Green!</a> 
    <script src="switch.js" type='text/javascript'></script> 
</body> 
</html> 
3

你運行你的代碼在元素存在之前。

<script>元素移動到<body>的底部(以便它們在存在後運行),或者在加載事件中運行代碼。

+0

移動

  • 11. 給予鏈接到datepicker圖標gif
  • 12. 如何給鏈接的虛線邊框賦予不同的風格,顏色?
  • 13. 函數賦值給變量
  • 14. boost ::函數賦值給成員函數
  • 15. 的超鏈接的Excel解決方案,爲給予鏈接
  • 16. 如何給地圖賦予默認值?
  • 17. 如何給枚舉值賦予別名?
  • 18. 如何給simple_form標籤賦予樣式?
  • 19. 爲&符號賦予參數
  • 20. 在WinSCP賦予
  • 21. 使用數字鍵給一個數組賦予鍵名
  • 22. Objective-c給字符串賦予隨機數的整數?
  • 23. 將數據導出到Excel中,並給予鏈接
  • 24. 將函數參數賦值給變量
  • 25. 是否可以直接鏈接到JavaScript onclick函數?
  • 26. 將char型函數的int型參數賦予
  • 27. 在php數組中給列表項賦予唯一的類
  • 28. 給字符數組賦予char字符串的問題
  • 29. 任何給每組連續整數賦予名字的方法?
  • 30. 給astropy.io.fits中的BinTableHDU數據賦予標籤