JavaScript innerHTML

时间:2010-02-24 10:44:48

标签: javascript

为什么这不起作用? innerHTML不能容纳这么复杂的东西吗?

<html>
<head>
    <script type="text/javascript">
        function addTable() {
            var html = "<table><tr><td><label for="name">Name:</label></td><td><input type="text" id="name"></input></td></tr>"; +
                "<tr><td><label for="remarks">Remarks:</label></td><td><input type="text" id="remarks"></input></td></tr></table>";
            document.getElementById("addtable").innerHTML = html;
        }
    </script>


</head>
<body>
    <input type="submit" value="New Table" onClick="addTable()"/>
    <div id="addtable"></div>
</body>
</html>

像这样不太复杂的东西:

var html = "<table><tr><td>123</td><td>456</td></tr></table>";

6 个答案:

答案 0 :(得分:5)

您需要在要分配给html变量的字符串中转义双引号,或者只用单引号括起该字符串。使用带有语法突出显示的文本编辑器,这样的错误会马上跳出来。你的作业中还有一个额外的分号。

答案 1 :(得分:1)

你的报价被打破了。您在字符串中使用双引号:

"<tr><td><label for="remarks">Remarks:</label></td><td><input .... 

Firefox错误控制台应始终是您的第一站,此类错误始终会记录在那里。

答案 2 :(得分:1)

您的字符串使用双引号分隔,并在字符串中使用它们。切换到在字符串中使用单引号。

var html = "<table><tr><td><label for='name'>Name:</label></td><td><input type='text' id='name'></input></td></tr>"; +
"<tr><td><label for='remarks'>Remarks:</label></td><td><input type='text' id='remarks'></input></td></tr></table>";

答案 3 :(得分:0)

而不是双引号使用单引号,如下所示:

var html =“&lt; table&gt;&lt; tr&gt;&lt; td&gt;&lt; label for ='name'&gt;名称:&lt; / label&gt;&lt; / td&gt;&lt; td&gt;&lt; input type = 'text'id ='name'&gt;&lt; / input&gt;&lt; / td&gt;&lt; / tr&gt;' +                 “&lt; tr&gt;&lt; td&gt;&lt; label for ='remarks'&gt;备注:&lt; / label&gt;&lt; / td&gt;&lt; td&gt;&lt; input type ='text'id ='remarks'&gt; &LT; /输入&GT;&LT; / TD&GT;&LT; / TR&GT;&LT; /表&gt;“;

享受编码!!

答案 4 :(得分:0)

您需要转义双引号或在字符串中使用指向该innerHTML的单引号。

答案 5 :(得分:0)

你的字符串中有错误,试试这个:

var html =“姓名:”; +                 “备注:”;             document.getElementById(“addtable”)。innerHTML = html;