2014-09-24 64 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