※ [本文转录自 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一次了