2010-02-24 71 views
1

为什么不能正常工作? innerHTMl不能接近这么复杂?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>"; 

回答

5

你需要或者逃避字符串中双引号你分配给html变量,或者只是围成单引号的字符串。使用带有语法突出显示的文本编辑器以及类似的错误会立即跳出您的面。你的任务还有一个额外的分号。

+1

这就是为什么我使用单引号表示javascript中的字符串的主要原因。 – 2010-02-24 10:48:52

+0

我正在使用记事本++ ... – yeeen 2010-02-24 10:59:50

1

您的报价已损坏。您正在使用双引号里面的字符串:

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

Firefox的错误控制台应该永远是您的第一站,这样的错误总是记录在那里。

0

代替双引号使用单引号,如下图所示:

VAR HTML =“<表> <TR> <TD> <标签= '名' >名称:< /标签> </TD > <TD> < INPUT TYPE = '文本' ID = '名称' > < /输入> </TD > </TR >'+ “<TR> <TD> <标签= '言论' >注:< /标签> </TD > <TD> <输入类型= '文本' ID = '言论' > < /输入> </TD > </tr > < /表>“;

享受编码!

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>"; 
0

您需要在发往该innerHTML的字符串中使用双引号或使用单引号。

0

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

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