티스토리 뷰

반응형

이걸로 많은 시간을 소비해서 기록으로 남겨둡니다.

테이블의 합계를 내는데.. 고생을 좀 했습니다.

 

   // 배출합을 더해야 각 행의 첫번째 배출합계로 나타내는 구간 (자식구간을 더하는 로직)
	outputAmountFields.forEach(function (field) {
	  field.addEventListener('input', function () {
		var table = field.closest('table');
		var outputSumFields = table.querySelectorAll('.output-sum');

		outputSumFields.forEach(function (outputSumField) {
		  var tr = outputSumField.closest('tr');
		  var rowIndex = tr.rowIndex;
		  var outputAmountsInRow = table.querySelectorAll('tr:nth-child(' + rowIndex + ') .output-amount1, tr:nth-child(' + rowIndex + ') .output-amount2, tr:nth-child(' + rowIndex + ') .output-amount3, tr:nth-child(' + rowIndex + ') .output-amount4 , tr:nth-child(' + rowIndex + ') .output-amount5');
		  var sum = 0;

		  outputAmountsInRow.forEach(function (amountField) {
			var value = amountField.value || '';
			sum += parseInt(value) || 0;
		  });

		  outputSumField.value = (sum !== 0) ? sum : '';
		});
	  });
	});

 

 

이런식으로 셀이 나뉘어있을때 자동합계를 낼때 유용한 코드라고 생각됩네요.

엄청 해매다가 찾아서 해결한 거라 기록으로 남겨둡니다.

다음에는 좀더 빨리 찾기 위한 나만의 DB를 구축하는거죠~

 

반응형
댓글