[问题] jQuery .each index问题(已解决)

楼主: kiloxx (名器)   2019-03-17 19:09:35
※ [本文转录自 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一次了
作者: GGing (小轩轩)   2018-03-17 18:30:00
JavaScript 也算 Java 的守备范围吗?XD
作者: now99 (陈在天)   2018-03-17 18:59:00
语言不同吧
楼主: kiloxx (名器)   2018-03-17 19:09:00
呃~抱歉搞错了,我转去web_design
作者: foolray (foolray)   2019-03-18 00:27:00
这写法看了真头痛…需求是加一行然后已经有资料阵列了怎不加进阵列each…
楼主: kiloxx (名器)   2019-03-18 01:35:00
不好意思,因为我完全是自学,不太明白大大的意思我目前对JS的脑容量只能写出这种function,我也觉得很头痛如果有更好的学习资源,拜托提供给小弟参考!!
作者: foolray (foolray)   2019-03-18 13:18:00
我试着操作是012 且看console跟输出都是4个把if内find~after 换成append看看?还是原table的状况?
作者: mackliu (回不去的大叔)   2019-03-18 23:47:00
最好有原表格的状况,不然只是这样跑起,似乎没问题如果你跑起来会有问题,是否那边打错字或多加了逗号?
作者: y3k (激流を制するは静水)   2019-03-19 00:27:00
each()出来应该有index跟value 你加抓value吧javascript的callback跑怪怪的时候 建议抓看看function的arguments 这个做法可以很快找到问题点
楼主: kiloxx (名器)   2019-03-19 01:56:00
抱歉今天跑去忙别的东西,我明天再回报
作者: molopo (mmm)   2019-03-20 00:26:00
每个都console log出来

Links booklink

Contact Us: admin [ a t ] ucptt.com