[問題] jQuery 執行順序與預期不同

作者: charlie0228 (嚮往湛藍)   2016-11-03 21:06:09
先附上程式碼: https://jsfiddle.net/AzureBlue/3jbxz02g/
有問題的是JS最後這一段:
for (var i=0;i<row_num;i++) {
$('#reg_t').append("<tr>");
for (var j=0;j<data_num;j++)
$('#reg_t').append("<td>" + getData[i][j] + "</td>");
$('#reg_t').append("</tr>");
}
本來預期執行之後生成的表格欄位會是這樣:
<tr>
<td></td>
<td></td>
.
.
.
<td></td>
</tr>
但是我程式執行完之後,卻是:
<tr></tr>
<td></td>
<td></td>
.
.
.
<td></td>
是哪裡我搞錯了嗎?還是這也是因為非同步處理的問題?
作者: mintle (☑狂派☑初音)   2016-11-07 20:58:00
話說回圈不加{} 真是很不好的寫法阿
作者: serotw (弒龍)   2016-11-07 08:36:00
是你html用法錯誤,td應該放進tr內,而不是丟在指定物件名上
作者: mrbigmouth (大嘴先生)   2016-11-03 21:28:00
你不能append一個不完整的tag到畫面上所以最前面的<tr>就自動被轉為<tr></tr>真想這樣做就改用字串加法 組成完整的html後再append
作者: Peruheru (還在想)   2016-11-08 15:13:00
不會,只是有人不喜歡不過我通常會加一行空白免得別人看的時候誤會只要不會造成閱讀障礙,要不要加單行括弧就只是感覺問題無所謂好或不好
作者: Kenqr (function(){})()   2016-11-08 22:10:00
之後假如要在迴圈裡多加一行 卻忘了補上括號 就會出錯這樣寫本身沒錯 但是是未來出錯的潛在風險所以大部份coding style都會規範一定要加括號
作者: Peruheru (還在想)   2016-11-09 10:16:00
我習慣在插入前就尋找括弧位置,沒有就會加上,所以對我來說這不會是潛在風險,而這可以讓我一頁內可以瀏覽的內容增加,所以我覺得這只是喜好問題如果的確會擔心增加內容時沒補到,那就寫上比較保險縮排比這種事情重要多了未來會不會產生那種風險,端看撰寫習慣而定
作者: eight0 (欸XD)   2016-11-09 11:42:00
作者: youtuuube000 (小孩)   2016-11-09 14:50:00
縮排比較重要+1Python也沒在用刮號的 但沒縮排的code很噁.....
作者: xdraculax (首席怪叔叔)   2016-11-19 13:34:00
錯在用字串的概念操作jQuery,jQuery創出來的是Html DOM 1.td應該加在tr裡 2.未加內容,</tr> </td> 其實並不需要

Links booklink

Contact Us: admin [ a t ] ucptt.com