table 가지고 놀기 insertrow deleterow
<html>
<head>
<title>AddRow, DelRow, CopyRow</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="util.js"></script>
<script language="javascript">
<!--
function insRow() {
var objTable = document.getElementById("mainTbl");
var objTBody = document.createElement("TBODY");
objTable.appendChild(objTBody);
var lastRow = objTable.rows.length;
var objRow1 = objTable.insertRow(lastRow);
var objRow2 = objTable.insertRow(lastRow + 1);
var objCell1 = objRow1.insertCell();
var objCell2 = objRow1.insertCell();
var objCell3 = objRow1.insertCell();
var objCell4 = objRow1.insertCell();
var objCell5 = objRow1.insertCell();
var objCell6 = objRow2.insertCell();
var objCell7 = objRow2.insertCell();
var objCell8 = objRow2.insertCell();
var objCell9 = objRow2.insertCell();
objCell1.innerHTML = "<input type='checkbox' id='chk'>";
objCell1.rowSpan = 2;
objCell2.innerHTML = "<input type='text' id='input1' width='10px'>";
objCell3.innerHTML = "<input type='text' id='input2' width='10px'>";
objCell4.innerHTML = "<input type='text' id='input3' width='10px'>";
objCell5.innerHTML = "<input type='text' id='input4' width='10px'>";
objCell6.innerHTML = "<input type='text' id='input5' width='10px'>";
objCell7.innerHTML = "<input type='text' id='input6' width='10px'>";
objCell8.innerHTML = "<input type='text' id='input7' width='10px'>";
objCell9.innerHTML = "<input type='text' id='input8' width='10px'>";
}
// delete Row
function delRow() {
var objTable = document.getElementById("mainTbl");
var objTBody = objTable.getElementsByTagName("TBODY");
var lastRow = objTBody.length - 1;
var chkCnt = checkCount();
if(chkCnt > 0) {
if( confirm("Delete Selected Item?") ){
for(var i = lastRow; i > 0; i--) {
if(objTBody[i].getElementsByTagName("TR")[0].cells[0].firstChild.checked) objTBody[i].removeNode(true);
}
}
} else {
alert("Please Select Delete Row.");
return;
}
}
function cpyRow() {
var objTable = document.getElementById("mainTbl");
var objTBody = objTable.getElementsByTagName("TBODY");
var lastRow = objTBody.length - 1;
var chkCnt = checkCount();
if(chkCnt == 0) {
alert("Select Copy Row. Please.");
return;
} else if(chkCnt > 1) {
alert("Please Select One Row Only.");
return;
} else {
for(var i = lastRow; i > 0; i--) {
if(objTBody[i].getElementsByTagName("TR")[0].cells[0].firstChild.checked) {
var oTbody = searchUpByTagName("TBODY", objTBody[i].getElementsByTagName("TR")[0].cells[0].firstChild);
var oCloneNode = oTbody.cloneNode(true);
if(oTbody.nextSibling) objTable.insertBefore(oCloneNode, oTbody.nextSibling);
else objTable.appendChild(oCloneNode);
}
}
allUnCheck();
}
}
function chkData() {
var objTable = document.getElementById("mainTbl");
var objTBody = objTable.getElementsByTagName("TBODY");
var lastRow = objTBody.length - 1;
for(var i = lastRow; i > 0; i--) {
if(objTBody[i].getElementsByTagName("TR")[0].cells[0].firstChild.checked) {
var tBodyRow = objTBody[i].getElementsByTagName("TR").length;
for(var j = 0; j < tBodyRow; j++) {
var colCnt = objTBody[i].getElementsByTagName("TR")[j].cells.length;
for(var k = 0; k < colCnt; k++) {
var oTagName = objTBody[i].getElementsByTagName("TR")[j].cells[j].firstChild.tagName.toUpperCase();
switch (oTagName) {
case "INPUT" :
alert("input");
break;
}
}
}
}
}
}
/**
* CheckBox Tag Object return Checked Count
*/
function checkCount() {
var objTable = document.getElementById("mainTbl");
var objTBody = objTable.getElementsByTagName("TBODY");
var lastRow = objTBody.length - 1;
var rtnCnt = 0;
for(var i = lastRow; i > 0; i--) {
if(objTBody[i].getElementsByTagName("TR")[0].cells[0].firstChild.checked) rtnCnt++;
}
return rtnCnt;
}
/**
* CheckBox Tag Object return Checked Count
*/
function allCheck() {
var objTable = document.getElementById("mainTbl");
var objTBody = objTable.getElementsByTagName("TBODY");
var lastRow = objTBody.length - 1;
var rtnCnt = 0;
for(var i = lastRow; i > 0; i--) {
objTBody[i].getElementsByTagName("TR")[0].cells[0].firstChild.checked = true;
}
}
/**
* CheckBox Tag Object return Checked Count
*/
function allUnCheck() {
var objTable = document.getElementById("mainTbl");
var objTBody = objTable.getElementsByTagName("TBODY");
var lastRow = objTBody.length - 1;
var rtnCnt = 0;
for(var i = lastRow; i > 0; i--) {
objTBody[i].getElementsByTagName("TR")[0].cells[0].firstChild.checked = false;
}
}
function checkExcute(obj) {
if(obj.checked) allCheck();
else allUnCheck();
}
/**
* The Tag Object search Parent Elements Node from Current Element
*
* @param tagName Searching Tag Name
* @param srcElement Current Element Object
* @return Searched Node Object
*/
window.searchUpByTagName = function(tagName, srcElement) {
if(srcElement == null) srcElement = window.event.srcElement;
if(tagName == null) return null;
tagName = tagName.toUpperCase();
var element = srcElement.parentElement;
while(element != null) {
if(element.tagName == tagName) return element;
element = element.parentElement;
}
}
//-->
</script>
</head>
<body>
<form name="myForm">
<input type="hidden" name="row_cnt">
<table id="mainTbl" width="500" border="1">
<tbody>
<tr height="20px">
<td width="20%" rowspan="2">
<input type="checkbox" name="all_chk" onClick="checkExcute(this)">
</td>
<td width="20%" align="center">1</td>
<td width="20%" align="center">2</td>
<td width="20%" align="center">3</td>
<td width="20%" align="center">4</td>
</tr>
<tr>
<td align="center">5</td>
<td align="center">6</td>
<td align="center">7</td>
<td align="center">8</td>
</tr>
</tbody>
</table>
<table id="btnTbl">
<tr align="right">
<td>
<input type="button" value="insRow" OnClick="insRow()">
<input type="button" value="delRow" OnClick="delRow()">
<input type="button" value="copRow" OnClick="cpyRow()">
<input type="button" value="chkData" OnClick="chkData()">
</td>
</tr>
</table>
</form>
</body>
</html>