Javascript

javscript remove(); 체크박스 삭제 사용시 주의사항

유호야 2021. 9. 29. 13:50
반응형

삭제하는 순간

해당 번째 값이 사라지기 때문에 그 다음 체크박스 선택한 번째의 값을 삭제하기에

순서가 엉망이 된다는 것

그래서 list에다가 삭제할 값들의  id를 push 해서

for문을 돌린 후에 일괄 삭제하도록 수정했다.

function deleteRow() {
			var tbody = document.getElementById("tbody");
			var rows = tbody.rows.length;
			var hvs = document.getElementsByClassName("hv");
			var total = 0;
			
			var list = [];
			
			for(var i = 0; i < tbody.children.length; i++){
			    if(tbody.childNodes[i+1].firstChild.firstChild.checked){
					list.push(tbody.childNodes[i+1].getAttribute("id"));
			    }
			}
			
			for(var i = 0; i<list.length; i++) {
				//id값으로 삭제
				document.getElementById(list[i]).remove();
			}
			
			var totalNum = document.getElementById("totalNum").innerText;
			
			for(var i = 0 ; i<hvs.length; i++){
				total += parseInt(hvs[i].childNodes[5].innerText);
			}
			
			document.getElementById("totalNum").innerText = total;
			document.getElementById("totalNum2").innerText = total.toString().replace(/\B(?<!\.\d*)(?=(\d{3})+(?!\d))/g, ",");
		}
반응형