为什么我的javascript没有修改html?

时间:2012-09-08 04:40:07

标签: javascript html

假设在输入字段和发送按钮之间插入输入的文本,但它注意到了。

<body>                              
    <section>
        <p>passcode: <input type=text id=passcode></p>
        <section id=middle></section>
        <p><input type=button id=button value=send></p>
    </section>
    <script type="text/javascript">
        var log=new Array();
        document.getElementById("button").onclick=exlog();
        exlog(){
            log.push(document.getElementById("passcode").value)
            for(i=0;i<log.length;i++){
            document.getElementById("middle").innerHtml=log[i];
        }
    }
    </script>
</body>

4 个答案:

答案 0 :(得分:3)

更改

        document.getElementById("middle").innerHtml=log[i];

        document.getElementById("middle").innerHTML=log[i];

参考:https://developer.mozilla.org/en-US/docs/DOM/element.innerHTML

答案 1 :(得分:2)

您的exlog函数缺少函数关键字,而您正在错误地设置onclick处理程序。

同样innerHtml应为innerHTML

    document.getElementById("button").onclick=exlog;
    function exlog(){
        log.push(document.getElementById("passcode").value)
        for(i=0;i<log.length;i++){
        document.getElementById("middle").innerHTML=log[i];
    }

答案 2 :(得分:1)

我注意到您的代码存在一些问题。最重要的是,你应该使用innerHTML,而不是innerHtml(注意大写)。

此外,您需要注意如何处理功能。只是把exlog(){}放在一起就不会创建一个函数。相反,您应该使用function关键字。

最后,您要将onclick处理程序设置为函数exlog。您使用的实际上将onclick处理程序设置为评估exlog函数的结果。

这是一个包含所有建议更改的解决方案:

<body>                              
<section>
    <p>passcode: <input type=text id=passcode></p>
    <section id=middle></section>
    <p><input type=button id=button value=send></p>
</section>
<script type="text/javascript">
    var log=new Array();
    document.getElementById("button").onclick=exlog;
    function exlog(){
        log.push(document.getElementById("passcode").value)
        for(i=0;i<log.length;i++){
alert(log[i]);
        document.getElementById("middle").innerHTML=log[i];
    }
}
</script>
</body>

答案 3 :(得分:0)

您正在使用它来评估函数:exlog(),因为exlog没有return语句,它的计算结果为undefined,浏览器将不会执行该函数。

如果您想分配它,您可以使用它的名称exlog

此外,如Teemu和Musa所述,exlog的定义中缺少函数关键字

此外,innerHTML的大小写必须准确,混合情况不会起作用。

<body>                              
    <section>
        <p>passcode: <input type=text id=passcode></p>
        <section id=middle></section>
        <p><input type=button id=button value=send></p>
    </section>
    <script type="text/javascript">
        var log = [];
        document.getElementById("button").onclick = exlog; // <== no need to evaluate the function, just assign it.
        function exlog(){ // <== as pointed out below function keyword was missing
            log.push(document.getElementById("passcode").value);
            document.getElementById("middle").innerHTML += log[log.length - 1]; // <== needs to be capitilized exactly like this
        }
    </script>
</body>