2014-09-24 98 views
0

我有id = image1 image2 image3 etc ....並且想要使用一個getElementById。 我該怎麼做?我可以在xxxxxxx中輸入什麼?getElementById動態ID onclick更改圖像

HTML: 
<img id="[email protected](i.ToString)" onclick=diffImage(this) src="http://idratherbewriting.com/wp-content/uploads/2013/03/minusb.jpg" data-toggle="collapse" data-target="#[email protected](i.ToString)" /> 

JavaScript: 
function diffImage(img) { 
var image = document.getElementById(xxxxxxx); 
if (image.src.match("http://idratherbewriting.com/wp-content/uploads/2013/03/minusb.jpg")) { 
image.src = "http://idratherbewriting.com/wp-content/uploads/2013/03/plus3.jpg"; 
    } else { 
image.src = "http://idratherbewriting.com/wp-content/uploads/2013/03/minusb.jpg"; 
    } 
} 
+0

你可以把'「圖像1」'或'「圖像2」'或'「圖像3」'等或者,你說你想要得到所有這一切的元素的引用用一個函數調用? 'getElementById'總是隻能返回一個元素。 – 2014-09-24 16:00:01

+0

getElementById(img.id)???? – 2014-09-24 16:04:18

+0

也許你可以給它們所有相同的名稱並使用'getElementsByName'(或者類和'getElementsByClassName')? – paul 2014-09-24 16:06:53

回答

1
for (var i=1; i < 5; i++) { 
    var image = document.getElementById('image' + i); 
} 
+2

爲循環定義var圖像會更好... + 1 – 2014-09-24 16:02:03

+0

當我單擊圖片時,我看到「0x800a138f - Microsoft JScript運行時錯誤:無法獲取屬性值src':對象爲null或未定義」 – 2014-09-24 16:08:42

+0

getElementById (img.id)適用於此! – 2014-09-24 16:14:25

2

好像你希望它點擊時,改變形象。由於您發送this以發揮作用,因此您不需要document.getElementById(),因此您在參數中包含元素。

試試這個:

function diffImage(image) { 
    if (image.src.match("http://idratherbewriting.com/wp-content/uploads/2013/03/minusb.jpg")) { 
     image.src = "http://idratherbewriting.com/wp-content/uploads/2013/03/plus3.jpg"; 
    } else { 
     image.src = "http://idratherbewriting.com/wp-content/uploads/2013/03/minusb.jpg"; 
    } 
} 
+0

我應該更好地閱讀這個問題,圖像被傳入。 – 2014-09-24 17:41:19