[問題] 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