Javascript无法设置属性&inner;内部HTML'未定义或空引用

时间:2016-03-18 00:47:58

标签: javascript

你好我这行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>

2 个答案:

答案 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() {};