js获取表格方法
本文将介绍如何使用js获取表格内某一单元格的内容,表格由table,tr,td等html标记组成。table表示表格,tr表示行,td表示行中列。
1.一般的表格结构如下
<table>
<tr>
<td>id</td>
<td>name</td>
</tr>
<tr>
<td>1</td>
<td>fdipzone</td>
</tr>
<tr>
<td>2</td>
<td>wing</td>
</tr>
</table>
2.遍历表格中所有内容方法
首先需要給table加上id,这样方便定位到哪一个表格,例如
<tableid="mytable"></table>
获取表格行数
<scripttype="text/javascript">
/**
*获取表格行数
*@paramIntid表格id
*@returnInt
*/
functiongetTableRowsLength(id){
varmytable=document.getElementById(id);
returnmytable.rows.length;
}
</script>
获取表格某一行列数
<scripttype="text/javascript">
/**
*获取表格某一行列数
*@paramIntid表格id
*@paramIntindex行数
*@returnInt
*/
functiongetTableRowCellsLength(id,index){
varmytable=document.getElementById(id);
if(index<mytable.rows.length){
returnmytable.rows[index].cells.length;
}else{
return0;
}
}
</script>
遍历表格内容保存到数组
<scripttype="text/javascript">
/**
*遍历表格内容返回数组
*@paramIntid表格id
*@returnArray
*/
functiongetTableContent(id){
varmytable=document.getElementById(id);
vardata=[];
for(vari=0,rows=mytable.rows.length;i<rows;i++){
for(varj=0,cells=mytable.rows[i].cells.length;j<cells;j++){
if(!data[i]){
data[i]=newArray();
}
data[i][j]=mytable.rows[i].cells[j].innerHTML;
}
}
returndata;
}
</script>
3.遍历表格内容完整例子
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
<html>
<head>
<metahttp-equiv="content-type"content="text/html;charset=utf-8">
<title>获取表格内容</title>
<styletype="text/css">
table{width:300px;border:1pxsolid#000000;border-collapse:collapse;}
td{border:1pxsolid#000000;border-collapse:collapse;}
</style>
<scripttype="text/javascript">
/**
*遍历表格内容返回数组
*@paramIntid表格id
*@returnArray
*/
functiongetTableContent(id){
varmytable=document.getElementById(id);
vardata=[];
for(vari=0,rows=mytable.rows.length;i<rows;i++){
for(varj=0,cells=mytable.rows[i].cells.length;j<cells;j++){
if(!data[i]){
data[i]=newArray();
}
data[i][j]=mytable.rows[i].cells[j].innerHTML;
}
}
returndata;
}
/**
*显示表格内容
*@paramIntid表格id
*/
functionshowTableContent(id){
vardata=getTableContent(id);
vartmp='';
for(i=0,rows=data.length;i<rows;i++){
for(j=0,cells=data[i].length;j<cells;j++){
tmp+=data[i][j]+',';
}
tmp+='<br>';
}
document.getElementById('result').innerHTML=tmp;
}
</script>
</head>
<body>
<tableid="mytable">
<tr>
<td>id</td>
<td>name</td>
</tr>
<tr>
<td>1</td>
<td>fdipzone</td>
</tr>
<tr>
<td>2</td>
<td>wing</td>
</tr>
</table>
<p><inputtype="button"name="btn"value="获取表格数据"onclick="showTableContent('mytable')"></p>
<p><divid="result"></div></p>
</body>
</html>
js动态修改、获取table单元格的内容
2014-12-10斗进馆+关注献花(0)
<tableborder=1width=200height=150id='tab'>
<tr><td>111</td><td>111</td></tr>
<tr><td>222</td><td>222</td></tr>
<tr><td>333</td><td>333</td></tr>
<tr><td>444</td><td>444</td></tr>
</table>
<palign=center><inputtype='button'onclick='change()'>
<script>
functionchange(){
document.getElementById('tab').rows[0].childNodes[0].innerText='aaa';
}
</script>
--------------------------------------------------------------------------------
<tableid="test">
<tr>
<td>hello</td>
</tr>
</table>
<scriptlanguage="JavaScript">
alert(document.getElementById("test").rows[0].cells[0].innerText);
</script>
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/>
<title>无标题文档</title>
</head>
<body>
<tableid="tb">
<tr>
<td>title</td>
<td>title1</td>
</tr>
<tr>
<td>test</td>
<td>test1</td>
</tr>
</table>
<inputtype="button"onClick="show(tb,result);"value="获取">
<inputtype="text"size=10name="result">
<scriptlanguage="javascript">
functionshow(tb,txt)
{
document.all.result.value=document.all.tb.rows(1).cells(1).innerHTML;
}
</script>
<tablewidth="800"border="0"cellspacing="0"cellpadding="0">
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><spanid="feedback_info"style="color:#FF0000"></span></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
<script>
document.getElementById("feedback_info").innerHTML="aaaaaa";
document.all.tb.rows(0).cells(1).innerHTML="aaaaaa";
</script>
</body>
</html>
js获得<table>的单元格信息
1.获取表格中的某个单元格的内容
vartid=listFrame.now.rows[1].cells[2].innerHTML;
listFrame是指某一窗口或者frame
now是表格的id
rows[i]是指某一行比如属性:length
cells[j]是指某一个单元格rows[i].cells[j]表示第i行第j列
innerHTML是指单元格的值
2只刷新一次
functionreurl(){
url=location.href;//把当前页面的地址赋给变量url
vartimes=url.split("?");//分切变量url分隔符号为"?"
if(times[1]!=1){//如果?后的值不等于1表示没有刷新
url+="?1";//把变量url的值加入?1
parent.parent.location.reload()//刷新页面
}
else{
reutrnfalse;
}
}
动态表格
动态表格彻底研究
对表格单元格的添加删除修改并对其进行移动以及拷贝等操作,是目前应用开发中常用的技术
1111
2222
3333
4444
5555
66656
7777777
8888877
9999999999
10101010
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/>
<title>动态表格</title>
</head>
<body>
<p>动态表格彻底研究</p>
<p>对表格单元格的添加删除修改并对其进行移动以及拷贝等操作,是目前应用开发中常用的技术</p>
<p>
<inputtype="button"name="Submit"value="刷新"onclick="onRefresh()"/>
<inputtype="button"name="Submit2"value="全选"onclick="selectall()"/>
<inputtype="button"name="Submit8"value="反选"onclick="inverse()"/>
<inputtype="button"name="Submit3"value="不选"onclick="noselect()"/>
<inputtype="button"name="Submit4"value="添加行与列"onclick="insert_row()"/>
<inputtype="button"name="Submit7"value="删除选择"onclick="delRow()"/>
<inputtype="button"name="Submit5"value="拷贝选择"onclick="copyRow()"/>
<inputtype="button"name="Submit92"value="居中对齐"onclick="tableAlign()"/>
<inputtype="button"name="Submit922"value="隔行变色"onclick="changeColor()"/>
</p>
<tablewidth="50%"border="1"cellpadding="1"cellspacing="2"bordercolor="#CCCCCC"id="myTable">
<tr>
<tdwidth="7%">
<label>
<inputtype="checkbox"name="checkbox"value="checkbox"/>
</label></td>
<tdwidth="51%">1</td>
<tdwidth="14%">1</td>
<tdwidth="14%">1</td>
<tdwidth="14%">1</td>
</tr>
<tr>
<td><inputtype="checkbox"name="checkbox2"value="checkbox"/></td>
<td>2</td>
<td>2</td>
<td>2</td>
<td>2</td>
</tr>
<tr>
<td><inputtype="checkbox"name="checkbox3"value="checkbox"/></td>
<td>3</td>
<td>3</td>
<td>3</td>
<td>3</td>
</tr>
<tr>
<td><inputtype="checkbox"name="checkbox4"value="checkbox"/></td>
<td>4</td>
<td>4</td>
<td>4</td>
<td>4</td>
</tr>
<tr>
<td><inputtype="checkbox"name="checkbox5"value="checkbox"/></td>
<td>5</td>
<tdcolspan="2">55</td>
<td>5</td>
</tr>
<tr>
<td><inputtype="checkbox"name="checkbox6"value="checkbox"/></td>
<td>6</td>
<td>6</td>
<td>6</td>
<td>56</td>
</tr>
<tr>
<td><inputtype="checkbox"name="checkbox7"value="checkbox"/></td>
<td>777</td>
<td>7</td>
<td>77</td>
<td>7</td>
</tr>
<tr>
<td><inputtype="checkbox"name="checkbox8"value="checkbox"/></td>
<td>88</td>
<td>8</td>
<td>88</td>
<td>77</td>
</tr>
<tr>
<td><inputtype="checkbox"name="checkbox9"value="checkbox"/></td>
<td>999</td>
<td>99</td>
<td>99</td>
<td>999</td>
</tr>
<tr>
<td><inputtype="checkbox"name="checkbox10"value="checkbox"/></td>
<td>10</td>
<td>10</td>
<td>10</td>
<td>10</td>
</tr>
</table>
<br/>
<p></p>
<scripttype="text/javascript">
varform=document.forms["form1"];
vartable=document.getElementById("myTable");
varselectBox=table.getElementsByTagName("input");
vartr=table.getElementsByTagName("tr");
varclicked=true;
functioninsert_row(){
//alert(table.rows[0].cells.length)
varthisrow=table.insertRow(0);
varthiscell=thisrow.insertCell(0);
thiscell.innerHTML="<inputtype=\"checkbox\"name=\"checkbox10\"value=\"checkbox\"/>";
varthiscell1=thisrow.insertCell(1);
thiscell1.innerHTML="cell";
varthiscell2=thisrow.insertCell(2);
thiscell2.innerHTML="cell";
varthiscell3=thisrow.insertCell(3);
thiscell3.innerHTML="cell";
varthiscell4=thisrow.insertCell(4);
thiscell4.innerHTML="cell";
thiscell4.align="center";
}
functioninsert_Cell(){
vary=table.rows[0].insertCell(0);
y.colspan="2";
y.innerHTML="sssss";
}
functionselectall(){
for(i=0;i<selectBox.length;i++){
selectBox[i].checked=true;
}
}
functionnoselect(){
for(i=0;i<selectBox.length;i++){
selectBox[i].checked=false;
}
}
functioninverse(){
for(i=0;i<selectBox.length;i++){
if(selectBox[i].checked){
selectBox[i].checked=false;
}else{
selectBox[i].checked=true;
}
}
}
functiondelRow(){
for(i=selectBox.length-1;i>=0;i--){
//alert(typeof(selectBox[i]));
if(selectBox[i].checked){
table.deleteRow(i);
}
}
}
functiononRefresh(){
location.reload();
}
functioncopyRow(){
for(i=0;i<selectBox.length;i++){
if(selectBox[i].checked){
//varcopytable=document.getElementById("copyTable");
vartablerow=table.insertRow(table.rows.length);
tablerow.innerHTML=table.rows[i].innerHTML;
}
}
}
functiontableAlign(){
for(i=0;i<selectBox.length;i++){
if(selectBox[i].checked&&clicked){
table.rows[i].align="center";
}
}
}
functionchangeColor(){
varskip=true;
for(i=0;i<tr.length;i++){
if(skip){
tr[i].bgcolor="#cccccc";
skip=false;
}else{
tr[i].bgcolor="#ffffff";
skip=true;
}
}
}
</script>
</body>
</html>
转载请注明出处:http://www.cnblogs.com/NNUF/
永恒de影シ刚子的软件之路博客园闪存首页新随笔管理
随笔-165文章-52评论-69
js中对表格的操作总结
inserRow()和insertCell()方法
首先,表格行索引从0开始。
inserRow():
这个函数将新行添加到index的那一行前,
比如insertRow(0),是将新行添加到第一行之前。
默认的insertRow()函数相当于insertRow(-1),将新行添加到表的最后。
objTable.insertRow(objTable.rows.length).就是为表格objTable在最后新增一行。
insertCell()和insertRow()的用法相同,这里就不再说了。
deleteRow()和deleteCell()方法
deleteRow(index):index从0开始
删除指定位置的行和单元格。要传入的参数:Index是行在表格中的位置,可以下面的方法取得然后去删除:
varrow=document.getElementById("行的Id");
varindex=row.rowIndex;//有这个属性,嘿嘿
objTable.deleteRow(index);
注意:
删除表格的行的时候,如果你删除了某一行,那么表格行数是马上就变化的
错误JS代码:
functionclearRow()
{
objTable=document.getElementById("myTable");
varlength=objTable.rows.length
for(vari=1;i<length;i++)
{
tblObj.deleteRow(i);
//应该是deleteRow(1)。因为在删除表格行的时候,表格的行数在变化,这就是问题的关键,rows.length总是在变小,删除的行数总是会比预想的要少一半
}
}
正确JS代码:
functionclearRow()
{
objTable=document.getElementById("myTable");
for(vari=1;i<objTable.rows.length;i++)
{
tblObj.deleteRow(1);
}
}
事例:
HTML代码:
<tablewidth=100%cellpadding=0cellspacing=0style="font-size:13px"id="usergrouptable">
<trstyle="background-image:url(../image/titlelan.gif);color:white"height=30>
<tdcolspan=3> 用户组管理<spanonclick="CloseDiv();"style="margin-
left:200px;width:20px;cursor:hand"> </span></td>
</tr>
<tr>
<td>用户组ID</td>
<td>用户组名</td>
<td>操作<inputtype="button"onclick="AddRow('usergrouptable');"value="+"></td>
</tr>
<trid="row3">
<td><inputtype=textid='txti3'class='textStyle'></td>
<td><inputtype=buttonid='del3'value='删除'align='absmiddle'onclick="deleteTheRow('row3');"></td>
<td>操作<inputtype="button"onclick="AddRow('usergrouptable');"value="+"></td>
</tr>
</table>
JS代码:
varid=4;
//表格增加行
functionAddRow(tablename)
{
vartab=document.getElementById(tablename);
varrow=tab.insertRow(-1);
/*添加行id*/
row.id="row"+id;
varcell1=row.insertCell(-1);
varcell2=row.insertCell(-1);
varcell3=row.insertCell(-1);
cell1.innerHTML="<inputtype='text'id='txti"+id+"'class='textStyle'value="+id+">";
cell2.innerHTML="<inputtype=buttonid='del"+id+"'value='删除'align='absmiddle'onclick=\"deleteTheRow('row"+id+"');\">";
cell3.innerHTML="<inputtype='button'onclick=\"AddRow('usergrouptable');\"value='+'>";
id++;
}
//删除行
functiondeleteTheRow(rowid)
{
if(confirm("确定删除此项吗?"))
{
vartab=document.getElementById("usergrouptable");
varrow=document.getElementById(rowid);
varinx=row.rowIndex;/*获得行号rowIndex*/
//varinx=document.getElementById("del3").parentElement.parentElement.rowIndex;
tab.deleteRow(inx);/*删除此行*/
alert("删除成功!");
}
}
Html代码
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<title>www.yuanshi88.com</title>
<style>
body{
font-family:Verdana,Geneva,sans-serif;
font-size:12px;
margin:0px;
padding:0px;
}
table{
font-size:12px;
font-family:Verdana,Geneva,sans-serif
}
td{
text-align:center;
background:#FFF
}
tr{
height:20px;
}
th{
background:#9DACBF;
color:#FFF;
height:20px;
line-height:20px
}
a{
color:#99C;
}
a:hover{
color:#F93
}
.inputtd{
padding:2px
}
.inputinput{
width:100%;
border:1pxsolid#000;
overflow:hidden
}
.btn{
}
</style>
<scriptsrc="jquery-1.2.6.min.js"type="text/javascript"></script>
<scripttype="text/javascript">
//简化document.getElementById()方法
functiongetObj(obj){
returndocument.getElementById(obj);
}
functioninsRow(){
//插入行
varobj=getObj("nw");
varnewRow=obj.insertRow(obj.rows.length);//插入行方法
varnewCell1=newRow.insertCell(newRow.cells.length);//插入单元格如果直接用insertCell()在FF里会出错,所以为了兼容,我们要加上newRow.cells.length参数
varnewCell2=newRow.insertCell(newRow.cells.length);
varnewCell3=newRow.insertCell(newRow.cells.length);
newCell1.innerHTML=getObj("name").value;//插入单元格后,现在向单元格中添加内容
newCell2.innerHTML=getObj("add").value;
//清空文本框
document.all("name").value="";
document.all("add").value="";
//将当前表格最后一行的序号写在delRow()方法中,这样我们可以在delRow()方法中删除当前行
newCell3.innerHTML='<ahref="javascript:delRow('+(obj.rows.length-1)+')">删除</a>|<ahref="javascript:editRow('+(obj.rows.length-1)+')">修改</a>';
}
//删除行
functiondelRow(i){
varobj=getObj("nw");
obj.deleteRow(i);
}
//修改行
functioneditRow(i){
vartab=getObj("nw");
getObj("name").value=tab.rows(i).cells(0).innerText;
getObj("add").value=tab.rows(i).cells(1).innerText;
document.getElementById("Insert").style.display="none";
document.getElementById("Save").style.display="block";
document.getElementById("CurrentRow").value=i;
}
functionsaveRow(){
vari=document.getElementById("CurrentRow").value-0;
vartab=getObj("nw");
tab.rows(i).cells(0).innerText=getObj("name").value;
tab.rows(i).cells(1).innerText=getObj("add").value;
getObj("name").value="";
getObj("add").value="";
document.getElementById("Insert").style.display="block";
document.getElementById("Save").style.display="none";
}
</script>
<title>Javascript控制表格实现动态添加和删除表格内容</title>
</head>
<body>
<inputtype="hidden"id="CurrentRow">
<tableid="nw"cellpadding="0"cellspacing="1"border="0"width="320"bgcolor="#CCCC99">
<th>编号</th>
<th>名称</th>
<th>操作</th>
<trclass="input">
<td><inputtype="text"id="name"/></td>
<td><inputtype="text"id="add"/></td>
<tdstyle="width:52px"><inputid="Insert"type="button"value="添加"class="btn"
onClick="insRow()"/><inputid="Save"type="button"value="保存"class="btn"onClick="saveRow()"
style="display:none"/></td>
</tr>
</table>
</body>
</html>
相关推荐
表格的现在还是较为常用的一种标签,但不是用来布局,常见处理、显示表格式数据。在HTML网页中,要想创建表格,就需要使用表格相关的标签。<table> <tr> <td>单元格内的文字</td> ...