2012-03-31 72 views
5

我的代码如下:使用jQuery语法错误追加

 <script> 
     var i = 2; 
     $("document").ready(function(){ 
      $("#newrow").click(function(){ 
       $("#maintable").append('<tr> 
             <td><input type="text" name="dept_" + i size="5" maxlength="5" /></td> 
             <td><input type="text" name="hours_" + i size="5" maxlength="1" /></td> 
            </tr>'); 
      }); 
      i = i + 1; 
     }); 
    </script> 

每当我运行的JavaScript给了我一个“未捕获的SyntaxError:意外的标记非法”上的$(“#maintable”)追加行。 。

对于我的生活,我无法弄清楚语法错误是什么。

这不是一个问题与实际元素被追加,因为我只是试图'<td></td>'以及那有同样的错误。

回答

13

如果不经过特殊处理,您无法在多行上打破字符串。要么把它全部在一行上,或者用反斜杠逃逸的新行:

'<tr>\ 
    <td><input type="text" name="dept_"' + i + ' size="5" maxlength="5" /></td>\ 
    <td><input type="text" name="hours_"' + i + ' size="5" maxlength="1" /></td>\ 
</tr>' 
2
<script> 
    var i = 2; 
    $(document).ready(function(){ 
     $("#newrow").click(function(){ 
      var html = '<tr>'; 
       html += '<td><input type="text" name="dept_"'+i+' size="5" maxlength="5" /></td>'; 
       html += '<td><input type="text" name="hours_"'+i+' size="5" maxlength="1" /></td>'; 
       html += '</tr>' 
      $("#maintable").append(html); 
     }); 
     i++; 
    }); 
</script> 

文档中没有报价,现在你的“准备就绪”功能不起作用! 变量“我”根本不加! 除非使用换行符,添加到变量或类似的东西,否则不能将字符串划分为多行。

+0

Downvoted因为文档可以在引号中。 – 2012-03-31 00:14:54

+0

你是认真的吗? – adeneo 2012-03-31 00:17:16

+0

它的工作正常,仍然有报价。我实际上在downvoting后意识到这有点苛刻,但StackOverflow不会让我撤消它。 编辑:想出如何。 – 2012-03-31 00:18:21