作者charlie0228 (向往湛蓝)
看板Ajax
标题[问题] jQuery 执行顺序与预期不同
时间Thu Nov 3 21:06:09 2016
先附上程式码:
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>
是哪里我搞错了吗?还是这也是因为非同步处理的问题?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.42.53.75
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Ajax/M.1478178373.A.4D4.html
1F:→ mrbigmouth: 你不能append一个不完整的tag到画面上 11/03 21:28
2F:→ mrbigmouth: 所以最前面的<tr>就自动被转为<tr></tr> 11/03 21:28
3F:→ mrbigmouth: 真想这样做就改用字串加法 组成完整的html後再append 11/03 21:29
原来是这样!我还一直以为是非同步的问题,因为我上面有发生一个非同步的问题0.0
我後来自己想到的方法也是改用字串加法,如下:
for (var i=0;i<row_num;i++) {
var text = "<tr>";
for (var j=0;j<data_num;j++)
text += "<td>" + getData[i][j] + "</td>";
$('#reg_t').append(text + "</tr>");
}
谢谢解惑!
4F:→ serotw: 是你html用法错误,td应该放进tr内,而不是丢在指定物件名 11/07 08:36
5F:→ serotw: 上 11/07 08:36
改成像是这样?
for (var i=0;i<row_num;i++) {
$('#reg_t').append("<tr></tr>");
for (var j=0;j<data_num;j++)
$('#reg_t tr:last-child').append("<td>" + getData[i][j] + "</td>");
}
6F:推 mintle: 话说回圈不加{} 真是很不好的写法阿 11/07 20:58
以前写C++习惯回圈底下只有一行指令就不加大括号了,还是说这样会造成错误?
※ 编辑: charlie0228 (117.56.223.223), 11/08/2016 14:43:23
7F:推 Peruheru: 不会,只是有人不喜欢 11/08 15:13
8F:→ Peruheru: 不过我通常会加一行空白免得别人看的时候误会 11/08 15:13
9F:→ Peruheru: 只要不会造成阅读障碍,要不要加单行括弧就只是感觉问题 11/08 15:15
10F:→ Peruheru: 无所谓好或不好 11/08 15:16
11F:推 Kenqr: 之後假如要在回圈里多加一行 却忘了补上括号 就会出错 11/08 22:10
12F:→ Kenqr: 这样写本身没错 但是是未来出错的潜在风险 11/08 22:10
13F:→ Kenqr: 所以大部份coding style都会规范一定要加括号 11/08 22:11
14F:推 Peruheru: 我习惯在插入前就寻找括弧位置,没有就会加上,所以对我 11/09 10:16
15F:→ Peruheru: 来说这不会是潜在风险,而这可以让我一页内可以浏览的内 11/09 10:16
16F:→ Peruheru: 容增加,所以我觉得这只是喜好问题 11/09 10:17
17F:→ Peruheru: 如果的确会担心增加内容时没补到,那就写上比较保险 11/09 10:18
18F:→ Peruheru: 缩排比这种事情重要多了 11/09 10:19
真的,我要上来问问题的时候,还要重新排版一次,没缩排真的会逼死人...
19F:→ Peruheru: 未来会不会产生那种风险,端看撰写习惯而定 11/09 10:20
21F:推 youtuuube000: 缩排比较重要+1 11/09 14:50
22F:→ youtuuube000: Python也没在用刮号的 但没缩排的code很恶..... 11/09 14:50
刚开始学Python,庆幸自己以前有良好缩排习惯......
※ 编辑: charlie0228 (117.56.223.223), 11/09/2016 15:11:17
23F:→ xdraculax: 错在用字串的概念操作jQuery,jQuery创出来的是Html DO 11/19 13:34
24F:→ xdraculax: M 1.td应该加在tr里 2.未加内容,</tr> </td> 其实并 11/19 13:34
25F:→ xdraculax: 不需要 11/19 13:34