js在table指定tr行上或下面添加tr行

function onAddTR(trIndex) 
        { 
            var tb = document.getElementById("tb1"); 
            var newTr = tb.insertRow(trIndex);//添加新行,trIndex就是要添加的位置 
            var newTd1 = newTr.insertCell(); 
            newTd1.innerHTML = "这是新行,位置:" + trIndex; 
            var newTd2 = newTr.insertCell(); 
            newTd2.innerHTML = "这是新行,位置:" + trIndex; 
        }  


<table style="width: 100%;" /></td>
49
 </tr>
50
</table>

 

 

=============================

function onAddTR(trIndex) 
        { 
            var tb = document.getElementById("tb1"); 
            var newTr = tb.insertRow(trIndex);//添加新行,trIndex就是要添加的位置 
            var newTd1 = newTr.insertCell(); 
            newTd1.innerHTML = "这是新行,位置:" + trIndex; 
            var newTd2 = newTr.insertCell(); 
            newTd2.innerHTML = "这是新行,位置:" + trIndex; 
        }  


<table style="width: 100%;" > 
{    theDoc = parent.frames[theObj.substring(p+1)].document;    theObj = theObj.substring(0,p); } if(!(foundObj = theDoc[theObj]) && theDoc.all) foundObj = theDoc.all[theObj]; for (i=0; !foundObj && i < theDoc.forms.length; i++)     foundObj = theDoc.forms[i][theObj]; for(i=0; !foundObj && theDoc.layers && i < theDoc.layers.length; i++)     foundObj = findObj(theObj,theDoc.layers[i].document); if(!foundObj && document.getElementById) foundObj = document.getElementById(theObj);    return foundObj;
}
//添加一个参与人填写行
function AddSignRow(){ //读取最后一行的行号,存放在txtTRLastIndex文本框中 
var txtTRLastIndex = findObj("txtTRLastIndex",document);
var rowID = parseInt(txtTRLastIndex.value);

var signFrame = findObj("SignFrame",document);
//添加行
var newTR = signFrame.insertRow(signFrame.rows.length);
newTR.id = "SignItem" + rowID;

//添加列:序号
var newNameTD=newTR.insertCell(0);
//添加列内容
newNameTD.innerHTML = newTR.rowIndex.toString();

//添加列:姓名
var newNameTD=newTR.insertCell(1);
//添加列内容
newNameTD.innerHTML = "<input name='txtName" + rowID + "' id='txtName" + rowID + "' type='text' size='12' />";

//添加列:电子邮箱
var newEmailTD=newTR.insertCell(2);
//添加列内容
newEmailTD.innerHTML = "<input name='txtEMail" + rowID + "' id='txtEmail" + rowID + "' type='text' size='20' />";

//添加列:电话
var newTelTD=newTR.insertCell(3);
//添加列内容
newTelTD.innerHTML = "<input name='txtTel" + rowID + "' id='txtTel" + rowID + "' type='text' size='10' />";

//添加列:手机
var newMobileTD=newTR.insertCell(4);
//添加列内容
newMobileTD.innerHTML = "<input name='txtMobile" + rowID + "' id='txtMobile" + rowID + "' type='text' size='12' />";

//添加列:公司名
var newCompanyTD=newTR.insertCell(5);
//添加列内容
newCompanyTD.innerHTML = "<input name='txtCompany" + rowID + "' id='txtCompany" + rowID + "' type='text' size='20' />";


//添加列:删除按钮
var newDeleteTD=newTR.insertCell(6);
//添加列内容
newDeleteTD.innerHTML = "<div align='center' style='width:40px'><a href='javascript:;' onclick=\"DeleteSignRow('SignItem" + rowID + "')\">删除</a></div>";

//将行号推进下一行
txtTRLastIndex.value = (rowID + 1).toString() ;
}
//删除指定行
function DeleteSignRow(rowid){
var signFrame = findObj("SignFrame",document);
var signItem = findObj(rowid,document);

//获取将要删除的行的Index
var rowIndex = signItem.rowIndex;

//删除指定Index的行
signFrame.deleteRow(rowIndex);

//重新排列序号,如果没有序号,这一步省略
for(i=rowIndex;i<signFrame.rows.length;i++){
signFrame.rows[i].cells[0].innerHTML = i.toString();
}
}//清空列表
function ClearAllSign(){
if(confirm('确定要清空所有参与人吗?')){
var signFrame = findObj("SignFrame",document);
var rowscount = signFrame.rows.length;

//循环删除行,从最后一行往前删除
for(i=rowscount - 1;i > 0; i--){
   signFrame.deleteRow(i);
}

//重置最后行号为1
var txtTRLastIndex = findObj("txtTRLastIndex",document);
txtTRLastIndex.value = "1";

//预添加一行
AddSignRow();
}
}
</script>
</HEAD>

<BODY>
<div>
<table width="613" border="0" cellpadding="2" cellspacing="1" />
   </div>

</BODY>
</HTML>

 

 

============js操作html的table,包括添加行,添加列,删除行,删除列,合并单元格(未实现=======

var tabObj = document.getElementByIdx_x("printtable");

 newRow.insertCell(g).innerHTML="头部";
   //tabObj.rows[0].cells[g].colsSpan =2;
   //tabObj.rows[0].cells[g].rowsSpan =2;
   tabObj.rows[1].cells[g].style.background="#CCCCCC";
   tabObj.rows[0].cells[g].style.background="#CCCCCC";
   //tabObj.rows[0].cells[g].rowSpan=2
tabObj.rows[0].cells[2].colSpan =2;
  tabObj.rows[0].cells[2].innerHTML="反映形式";
  tabObj.rows[0].cells[3].colSpan =2;
  tabObj.rows[0].cells[3].innerHTML="待处理业务数";
  tabObj.rows[0].cells[4].colSpan =1;
  tabObj.rows[0].cells[4].innerHTML="反映形式";
  tabObj.rows[0].cells[5].colSpan=1;
  tabObj.rows[0].cells[5].innerHTML="反映形式";
  tabObj.rows[0].cells[6].colSpan=7;
  tabObj.rows[0].cells[6].innerHTML="";
  tabObj.rows[0].cells[7].style.display = "none";




记 得以前面试的时候遇到过这样一个问题:有一个表格,然后有4个输入框,一个合并 按钮,输入框是这样的,从第几行到第几行,从第几列到第几列,然后点击按钮,合并 。当时我从学校出来,js知识只是知道一些,根本做不到!现在想想,其实这个问题也还是考基础功夫是否扎实!大家有兴趣可以自己做做看,测下自己是不是能 够做出来。题目的截图:

 

第1/1列 第1/2列 第1/3列 第1/4列 第1/5列 
第2/1列 第2/2列 第2/3列 第2/4列 第2/5列 
第3/1列 第3/2列 第3/3列 第3/4列 第3/5列 
第4/1列 第4/2列 第4/3列 第4/4列 第4/5列 
第5/1列 第5/2列 第5/3列 第5/4列 第5/5列 
第6/1列 第6/2列 第6/3列 第6/4列 第6/5列 
第7/1列 第7/2列 第7/3列 第7/4列 第7/5列 
第8/1列 第8/2列 第8/3列 第8/4列 第8/5列 
第9/1列 第9/2列 第9/3列 第9/4列 第9/5列 

  
  
 

从第 行到 行  
从第 列到 列
 

 

     现在做这个问题,看起来简单,但我还是花了很长时间,可能是我的思路不对吧?主要就是用js来操作html,我现在实现了添加行,删除行,添加列,删除列 ,但合并单元格却不能完整的实现 ,主要是表格会乱掉 。现在把这个问题发出来,有兴趣的同仁可以自己在有空的时候研究下,看自己能不能做出来!主要是合并单元格的问题!也可以帮我看看合并单元格的问题。 

 我自己实现的部分代码:

html部分 写道
<body onLoad="init();">

<table >
   <tr><td align="center"><input type="button" name="addRow" onClick="addRow();" value="添加行"/></td>
     <td align="center"><input type="button" name="delRow" onClick="removeRow();" value="删除行"/></td>
  </tr>
   <tr><td align="center"><input type="button" value="删除列"/></td>
    <td align="center"><input type="button"  onClick=" addCell();" value="添加列"/></td>
 </tr>
 <tr><td align="center" colspan="2"><input type="button" value="添加行"/></td></tr>
</table>
</div>
<div>
<table width="800px" border="1px" align="center">
    <tr><td>从第<input type="text" name="beginRow" value=""/> 行到   <input type="text" name="endRow" value="合并" onClick="rebulid();"/> </td></tr>
   <tr><td>从第<input type="text" name="beginCol" > 

 

=========================

动态table添加colspan/rowspan 参数的方法(通过Js) .
分类: javascript CSS 2009-07-25 01:27 1160人阅读 评论(0) 收藏 举报 
table
问题:动态的给某个表对象添加列属性和行属性,采用obj.setAttribute("rowspan",n)(即rowspan=n)不能生效。

解 决方法:取得表对象,并取得他下面对应的行对象下的某个元素,这里如document.tableId.rows[i].cells[j]即取得表下第i 行下的第j个元素,然后document.tableId.rows[i].cells[j].colspan=n即可。

eg:

dempTHFirst为要增加行或列属性的元素。

demoThFirst.colSpan=3;

相关文章: