Unturect typeError:在更改IMG的SRC时无法设置NULL的属性'SRC'[封闭]
2018-01-19
105
我希望当我点击 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>
错误是:
Uncaught TypeError: Cannot set property 'src' of null while changing SRC of img
为什么这不起作用?
2个回答
查看您的代码,您会执行以下操作:
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
,依此类推...
现在没有 id 为
1
或
2
的元素...因此当您执行以下操作时:
var prof = document.getElementById(names[x]);
您会收到错误。
您想要的是一个名称数组,因此您应该做的是:
var names = ["1200voc"]
这个这样您就可以正确地将
names
作为您想要的格式的数组循环。
Ayo K
2018-01-19
Names 不是数组,而是字符串。
将您的行更改为
var names = ["1200voc"];
James Johnson
2018-01-19