if判斷的部分拿掉就好了 這樣onchange時不論取消還是新增都會有紀錄了
狀態的確也有更新到你的getData,因為你取消一個之後,apple.length也變成1了
看了一下你的程式,唯一會更動isChanged的只有第一句if ($(this).is(':checked'))時會去改,你這邊是取消選取,所以Changed...