2012-03-31 76 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