[fix] use early appendChild