作者kiloxx (名器)
看板Web_Design
标题Fw: [问题] jQuery .each index问题
时间Sun Mar 17 19:09:35 2019
※ [本文转录自 java 看板 #1SZXGzwb ]
作者: kiloxx (名器) 看板: java
标题: [问题] jQuery .each index问题
时间: Sun Mar 17 17:32:43 2019
大家好~~
(我是超级新手,程式基础只有python,最近在学习建造dashboard)
想问一个jQuery each的问题: index开始的位子从0变成1了
下图是我的function,是让table插入一个新column
source是原本table的data
function add_columns(id, source) {
var $table = $(`#${id}`)
$table.find('tr').each(function (index) {
console.log(source[index], index, source.length);
if ( source[index] != undefined ) {
$(this).find('td').eq(-1).after(`
<td id="${source[index][0]}">
</td>
`
);
}
}
我在console loop出来,假设source = [ [0], [1], [2] ]
[0] , 0, 3
[1] , 1, 3
[2] , 2, 3
undefined, 3, 3
但是我产生出来的对应的td却只有
<td id=1></td>
<td id=1></td>
<td id=2></td>
<td id=2></td>
null
null
这边很明显就是在进到if的时候,index变成1开始了,不是0
请问为什麽会这样? 是我coding哪里有问题吗?还是这是正常的?
我暂时先在if 里面用index-1来处理掉,但感觉又怪怪的
抱歉打得有点长,麻烦帮忙解惑!!
感恩
// edited 已解决
睡不着突然想通了,$(tr)包含thead,
但是thead 没有td,所以if statement 里面才会从1开始
也可以解释为何多loop一次了
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.243.154.240
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1552815165.A.EA5.html
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1552815165.A.EA5.html
1F:→ GGing: JavaScript 也算 Java 的守备范围吗?XD03/17 18:30
2F:推 now99: 语言不同吧03/17 18:59
3F:→ kiloxx: 呃~抱歉搞错了,我转去web_design03/17 19:09
※ 发信站: 批踢踢实业坊(ptt.cc)
※ 转录者: kiloxx (111.243.154.240), 03/17/2019 19:09:35
4F:→ foolray: 这写法看了真头痛…需求是加一行然後已经有资料阵列了03/18 00:27
5F:→ foolray: 怎不加进阵列each…03/18 00:27
6F:→ kiloxx: 不好意思,因为我完全是自学,不太明白大大的意思03/18 01:35
7F:→ kiloxx: 我目前对JS的脑容量只能写出这种function,我也觉得很头痛03/18 01:35
8F:→ kiloxx: 如果有更好的学习资源,拜托提供给小弟参考!!03/18 01:37
9F:→ foolray: 我试着操作是012 且看console跟输出都是4个03/18 13:18
10F:→ foolray: 把if内find~after 换成append看看?还是原table的状况?03/18 13:20
11F:→ foolray: 把if内find~after 换成append看看?还是原table的状况?03/18 13:20
12F:→ mackliu: 最好有原表格的状况,不然只是这样跑起,似乎没问题03/18 23:47
13F:→ mackliu: 如果你跑起来会有问题,是否那边打错字或多加了逗号?03/18 23:48
14F:→ y3k: each()出来应该有index跟value 你加抓value吧03/19 00:27
15F:→ y3k: javascript的callback跑怪怪的时候 建议抓看看function的03/19 00:28
16F:→ y3k: arguments 这个做法可以很快找到问题点03/19 00:28
17F:→ kiloxx: 抱歉今天跑去忙别的东西,我明天再回报03/19 01:56
18F:推 molopo: 每个都console log出来03/20 00:26
还是不知道为什麽...我console看也都是对的...
所以我换了一个写法先loop source比较好
function add_columns(id, source) {
let $table = $(id);
$.each(source, function (index, value) {
let tr = $table.find('tr');
let td = document.createElement('td');
td.innerHTML = value;
//+1 to skip <thead>
tr[index+1].append(td);
tr[index+1].append(td);
});
};
不好意思打扰大家
※ 编辑: kiloxx (111.248.80.42), 03/20/2019 01:22:01
※ 编辑: kiloxx (111.248.80.42), 03/20/2019 02:11:24
※ 编辑: kiloxx (111.248.80.42), 03/20/2019 02:12:09