你好我这行javascript有问题,我是一个完全的初学者,我正在努力传递参数。我需要做的就是用传递的参数更改我的HTML文件中的标签,但我收到:< / p>
Unable to set property 'innerHTML' of undefined or null reference
有人可以帮忙吗?我已经搜索了其他问题,但他们对我的问题没有帮助。
function changeLabel(id, text){
document.getElementById(id).innerHTML = text;
}
changeLabel('label1', 'mylabel1');
HTML:
<div id="content1">content 1</div>
<div id="content2">content 2</div>
<form id="form1">
<label id="label1">Form Label1</label>
<input id="myText" type="text" value="A Text Field">
</form>
</div>
答案 0 :(得分:0)
看起来你没有正确使用你在函数中传递的参数。我认为你真正的意图是:
function changeLabel(mylabel1, label1){
document.getElementById(mylabel1).innerHTML = label1;
}
编辑:
根据您的新代码,用法应为:
changeLabel('mylabel1', 'label1');
答案 1 :(得分:0)
可能在加载HTML文件之前调用该函数,并且浏览器尝试在changeLabel()执行期间更改html元素,而尚未加载HTML元素。 尝试粘贴您的javascript代码:
<p id="label1"></p>
<script>
function changeLabel(id, text){
document.getElementById(id).innerHTML = text;
}
changeLabel('label1', 'mylabel1');
</script>
在.html文件中的HTML元素之后/之下,或者使用此代码加载外部javascript文件:
window.onload = function() { //changeLabel() will be executed after page load
function changeLabel(id, text){
document.getElementById(id).innerHTML = text;
}
changeLabel('label1', 'mylabel1');
};
您还可以在html文件的末尾加载外部javascript文件。
<html>
<head>
</head>
<body>
//context
</body>
<script src="myexternaljs.js"></script>
</html>
然后你不必使用:
window.onload = function() {};