1. 程式人生 > >阿里前端筆試題

阿里前端筆試題

// 此處也可換成ES6的寫法 class Contact{ constructor(rootId) { this.data = []; this.root = document.getElementById(rootId); this.ids = []; this.names = []; this.sexs = []; this.tels = []; this.provinces = []; this
.evts = []; } initData(){ this.lis = this.root.querySelectorAll('li'); this.ids = this.getDataArr(this.root.querySelectorAll('.id')); this.names = this.getDataArr(this.root.querySelectorAll('.name')); this.sexs = this.getDataArr(this.root.querySelectorAll('.sex'
)); this.tels = this.getDataArr(this.root.querySelectorAll('.tel')); this.provinces = this.getDataArr(this.root.querySelectorAll('.province')); this.loadDataFromArr(); this.initEvent(); } loadDataFromArr() { let len = this.ids.length; for
(let i = 0; i < len ;i++) { let obj = { id:this.ids[i], name:this.names[i], sexs: this.sexs[i], tels: this.tels[i], provinces: this.provinces[i] }; this.addItem(obj); } } getDataArr(arr){ let dataArr = []; for(let i = 0; i < this.lis.length; i++) { dataArr.push(arr[i].textContent); } return dataArr; } addItem(item) { this.data.push(item); } initEvent() { this.evts = this.root.querySelectorAll('.del'); this.handleDel = this.handleDel.bind(this); for(let i = 0; i < this.evts.length; i++) { this.evts[i].onclick = this.handleDel; } } handleDel(event) { this.lis = this.root.querySelectorAll('li'); // update this.evts = this.root.querySelectorAll('.del'); for(let i = 0 ;i < this.lis.length ; i++) { if(event.target === this.evts[i]) { console.log(this.lis[i],this.evts[i]); this.delItem(i,this.lis[i]); } } } delItem(index,target){ console.log(index); this.data.splice(index+1,1); this.root.removeChild(target); } } let contact = new Contact('J_List'); contact.initData();