주말에 질문에 답하기 위해 코드를 잔뜩 작성하고 기본적으로 기능을 구현해 놨는데, 구조가 너무 허술하다는 느낌이 들어서 크게 생각하지 못했습니다. 전혀 안 예뻐요 코드 복사 코드는 다음과 같습니다 <머리> 문서 제목 <br>테이블{ <br>테두리 간격: 0; <br>} <br>td{ <br>높이: 50px; <br>너비: 50px; <br>테두리 간격: 0; <br>} <br>.hidden{ <br>표시: 없음; <br>} <br> <본문> 테이블> 헤빙 <br>var selectecdlog = []; <br>var resultLen = 0; <br>var resultBegin = 0; <br>var backColor = ['빨간색','녹색','파란색']; // 3개의 행을 가정합니다. 1 - 빨간색 2 - 녹색 3 - 파란색 <br>var resultColor =0; <br>$("td").mousedown(function() { <br>selectecdlog = []; <br>resultColor = backColor[$(this).parent().attr('id').substr(1 )-1]; <br>$('td').css(' background-color', 'white') <br>// tr 태그의 ID <br>//alert($(this).parent ().attr('id')); <br>//열 번호를 가져옵니다. <br>//alert($(this).index() 1) <br>$(this).css(' background-color', resultColor); <br>selectecdlog.push($(this).attr('id')) <br>//alert($(this).attr('id')); >$("td").mouseup(onMouseUp); <br>$("td").mouseover(onMouseOver) <br>}) <br>function onMouseUp(){ <br>/* 이벤트 실행 */ <br>var len =resultLen= Math.abs(parseInt(selectecdlog[0].substr(selectecdlog[0].indexOf('c') 1)) -parseInt($(this).attr('id' ).substr(($(this).attr('id').indexOf('c')) 1))) 1; <br>var start =resultBegin=parseInt(selectecdlog[0].substr(selectecdlog[0].indexOf('c') 1)) >parseInt($(this).attr('id').substr(( $(this).attr('id').indexOf('c')) 1)) ? parseInt($(this).attr('id').substr(($(this).attr('id').indexOf('c')) 1)):parseInt(selectecdlog[0].substr(selectecdlog [0].indexOf('c') 1)); <br>for(var i =0; i<resultLen;i ) <BR>{ <BR>selectecdlog.push(selectecdlog[0].substr(0,2) "c" (resultBegin i)); <BR><br>} <br>selectecdlog.shift(); <BR>$('#log').text(selectecdlog.toString()); <BR><br>$("td").unbind('mouseover',onMouseOver); <br>$("td").unbind('mouseup',onMouseUp); <BR>} <BR>function onMouseOver(인수) { <BR>var len =resultLen= Math.abs(parseInt(selectecdlog[0].substr(selectecdlog[0].indexOf('c') 1)) - parseInt ($(this).attr('id').substr(($(this).attr('id').indexOf('c')) 1))) 1; <BR>var start =resultBegin=parseInt(selectecdlog[0].substr(selectecdlog[0].indexOf('c') 1)) >parseInt($(this).attr('id').substr(( $(this).attr('id').indexOf('c')) 1)) ? parseInt($(this).attr('id').substr(($(this).attr('id').indexOf('c')) 1)):parseInt(selectecdlog[0].substr(selectecdlog [0].indexOf('c') 1)); <br>$('td').css('배경색', '흰색'); <br>for(var i =0; i<leni ) <br>{ <br>$('#' selectecdlog[0].substr(0,2) "c" (시작 i)).css( '배경색상', 결과색상); <br>} <br>//alert( $(this).attr('id').substr(($(this).attr('id').indexOf('c')) 1)); <br>//$('#' tdId).css('배경색', '빨간색'); <br>} <br>// 각 td에 대한 ID 속성 설정 <br>$("td").each(function(index, val){ <br>/* 배열 또는 객체를 통해 반복 */ <br>$ (this).attr('id', $(this).parent().attr('id') "c" ($(this).index() 1))}); <br>//셀 결합 <br>함수 결합(인수) { <br>// body... <br>for (var m in selectecdlog) <br>{ <br>if(m==0) <br>{ <br>$('#' selectecdlog[m]).attr('colspan', resultLen); <br>$('#' selectecdlog[m]).css('width',resultLen*50 "px"); <br>//$('#' selectecdlog[m]).css('배경색', 'bule'); <br>} <br>else{ <br>$('#' selectecdlog[m]).addClass('hidden'); <br>} <br>} <br>} <br>