Javascript 未捕获类型错误:无法设置属性';src&x27;更改img的SRC时的空值
我想在我点击IMG时改变他的src。 这是我的部门:Javascript 未捕获类型错误:无法设置属性';src&x27;更改img的SRC时的空值,javascript,html,Javascript,Html,我想在我点击IMG时改变他的src。 这是我的部门: <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="onCh
<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>
函数onChange(id){
变量名称=(“1200voc”);
对于(x=0;x
错误是:
未捕获的TypeError:更改img的src时无法将属性“src”设置为null
为什么不起作用?名称不是数组,而是字符串
将行更改为
var name=[“1200voc”]代码>查看您的代码,您可以:
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 names = ["1200voc"]
通过这种方式,您可以以所需的格式将名称作为数组正确循环。这是一个与php相关的问题吗?您正在调用onclick=“onChangeProfession(This.id)”
但您的函数是onChange
对我来说,听起来像是一个打字问题,如上所述。@FunkFortyNiner变量名称
也有问题,该变量与函数名称无关。您正在迭代字符串名称
中的所有字符,该字符串不是数组,getElementById
找不到您的HTML元素,那么它们还需要更改HTML中img
的id
(它是1200
,而不是1200voc
)
var names = ["1200voc"]