본문 바로가기

HTML/JS/CSS

[JS]행,추가 삭제 공통 만들어 본것.


행 삭제인 경우는.. 체크박스 있는 로우일 때만.ㅋ

/**
 * Row추가
 *
 * @param obj   :  테이블 ID
 * @param cellNum  :  추가될 Row의 Cell (td tag) 개수
 * @param htmlValue  :  cell에 innerHtml로 들어갈 htmlTag (배열)
 * @param rowAttr  :  row (tr tag 속성)
 *
 * 사용예
 *
 * @return
 */

function addRow(tableId,cellNum,htmlValue,rowAttr){
 
 /**
  *  obj    
  *  cellNum      
  *  cellText(배열) 
  *  rowAttr   
  * 
  *  사용예
  * 
  *  function test(obj){
  * 
  *   
  *   var htmlValue = new Array();
  * 
  *   htmlValue[0]  = "<input type='checkbox' size='15' name='chk' />";   
  *   htmlValue[1]  = "<input type='text' size='15' name='id' />";    
  * 
  *      var rowAttr  = "#ffffff,25";  (색상, 높이)
  * 
  *   addRow(obj,htmlValue.length,htmlValue,rowAttr);  * 
  * 
  *  }
  */
 
 
 if(typeof(tableId) == "undefined"){
  
  alert("JAVASCRIPT ERROR : 호출한 테이블 ID 가 없습니다.");
  
  return false;
  
 }else{
 
  var RecentRow  = tableId.rows.length;    // 현재 TableRow 수
  var newRow    = tableId.insertRow(RecentRow); // row추가.
  var rowAttrArray = rowAttr.split(',');
  
  newRow.bgColor  = rowAttrArray[0];   // Row 속성
  newRow.height  = rowAttrArray[1];
  
  for(var i=0;i<cellNum;i++){      // 새로운 Row에 cell 생성후, htmlValue 값을 사용하여 innerHtml 
   
   newRow.insertCell(i);
   
   newRow.cells[i].innerHTML = htmlValue[i];
   
  }
  
 }
 
}

/**
 *
 * @param tableId   - tableId     (Object)
 * @param checkBoxName  - checkboxName (text)
 *
 * 사용예 -
 *  function del(tableId,checkBoxName){

  deleteRow(tableId,checkBoxName);

 }
 *
 * @return
 */

function deleteRow(tableId, checkBoxName){
 
 if(typeof(tableId) == "undefined"){
  
  alert("JAVASCRIPT ERROR : 호출한 테이블 ID 가 없습니다.");
  
  return false;
  
 }else{
  
  var RecentRow  = tableId.rows.length-1;
  
  for (RecentRow ; RecentRow > 0 ; RecentRow--){
   
  
   if (tableId.rows[RecentRow].all.namedItem(checkBoxName).checked == true)
         {
    // row가 1개 일때와 2개 이상일 때 구분해줄것.
          
    tableId.deleteRow(RecentRow);

         }
  }
  
 }
 
}

 

사용예제


매번 그냥 쓰다가; 내가 왜 이러고 싶나 해서 만들었다;