我想点击IMG时更改他的src。 这是我的div:
<div class="character">
<input id="1200" name="vocation_select" type="radio" value="1200" style="display: none" ></input>
<label id="label_profesji" for="1200">
<img id="1200voc" onclick="onChange(this.id)" src="engine/images/proffesion/1200voc.png" width="34px" height="34px" style="cursor: pointer" title="Bardock">
</label>
和javascript:
<script>
function onChange(id){
var names = ("1200voc");
for (x = 0; x < names.length; x++) {
var prof = document.getElementById(names[x]);
prof.src = 'engine/images/proffesion/' + names[x] + '.png';
}
var prof = document.getElementById(id);
prof.src = 'engine/images/proffesion/' + prof.id + '_s.png';
};
</script>
错误是:
未捕获的TypeError:无法设置属性&#39; src&#39;更改img的SRC时为null
为什么这不起作用?
答案 0 :(得分:0)
查看您的代码:
var names = ("1200voc")
然后尝试以数组形式访问names
。
所以这个:
for (x = 0; x < names.length; x++) {
var prof = document.getElementById(names[x]);
prof.src = 'engine/images/proffesion/' + names[x] + '.png';
}
表示names[0]
将返回1
,names[1]
将返回2
,names[2]
将返回0
,依此类推...... < / p>
现在没有ID为1
或2
的元素......所以当你这样做时:
var prof = document.getElementById(names[x]);
你得到错误。
你想要的是一系列名字,所以你应该做的是:
var names = ["1200voc"]
通过这种方式,您可以以所需的格式正确地遍历names
数组。
答案 1 :(得分:-1)
名称不是数组,而是字符串。
将您的行更改为var names = ["1200voc"];