js取得table中td值的问题

例子:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>


<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<style type="text/css">
table,table tr td{
border:1px solid black;
}
</style>

</head>


  <body>
<input type="button" value="aa" οnclick="aa();" />
<input type="button" value="bb" οnclick="bb();" />
<input type="button" value="cc" οnclick="cc();" />
<input type="button" value="dd" οnclick="dd();" />
   <table>
<tbody id="listContent">
<tr>
<td>第一行第一列</td>
<td>第一行第二列</td>
<td>第一行第三列</td>
</tr>
<tr>
<td>第二行第一列</td>
<td>第二行第二列</td>
<td>第二行第三列</td>
</tr>

<tr>
<td>第三行第一列</td>
<td>第三行第二列</td>
<td>第三行第三列</td>
</tr>
</tbody>
 </table>
 
 

 <script>

                       //第一种方法

function aa()
{

var table = document.getElementById("listContent");//获取第一个表格  
          

            //var text=table.rows[0].cells[1].innerText;//获取第一行,第二列文本

//var text=table.rows[1].cells[0].innerText;//获取第二行,第一列文本

//var text=table.rows[2].cells[1].innerText;//获取第三行,第二列文本

var text=table.rows[2].cells[2].innerText;//获取第三行,第三列文本
alert(text);

}

//第二种方法
function bb()
{
var tab = document.getElementById("listContent"); 
var rows = tab.rows.length;

/*
//获取到第一行第一列的文本
var cols = tab.rows[0].childNodes; //行数从'0'开始计算
var atext=cols[1].innerText; //列数从'1'开始计算
*/

/*
//获取第二行第二列
var cols = tab.rows[1].childNodes; //表格第1行,获取行数索引为"1"
var atext=cols[3].innerText; //表格列数第二行,获取列数索引为'3'
*/

//获取第三行第三列
var cols = tab.rows[2].childNodes; //表格第1行,获取行数索引为"3"
var atext=cols[5].innerText; //表格列数第二行,获取列数索引为'5'


alert(atext);

}

                       //第三种方法

function cc()
{
var tb=document.getElementById("listContent");
var trs=tb.childNodes;

/*
//获得第一行第一列
var tds=trs[1].childNodes;
var atd=tds[1].innerText;
*/

/*
//获得第二行第一列
var tds=trs[3].childNodes;
var atd=tds[1].innerText;
*/

/*
//获得第三行第一列
var tds=trs[5].childNodes;
var atd=tds[1].innerText;
*/

/*
//获得第一行第二列
var tds=trs[1].childNodes;
var atd=tds[3].innerText;
*/

//获得第一行第三列
var tds=trs[1].childNodes;
var atd=tds[5].innerText;

alert(atd);
}

                       //第四种方法

function dd()
{
var tb=document.getElementById("listContent");
var trs=tb.getElementsByTagName("tr");
           //获取第一行的td
var firtds=trs[0].getElementsByTagName("td");
//alert("第一行第一列="+firtds[0].innerText);
//alert("第一行第二列="+firtds[1].innerText);
//alert("第一行第三列="+firtds[2].innerText);

//获取第二行td
var sectds=trs[1].getElementsByTagName("td");
alert("第二行第一列="+sectds[0].innerText);


}
 </script>
  </body>

</html>



在上面获取table子节点的时候,有时候取第二列的值,索引需要写‘3’,这是因为浏览器解析的问题。

因为有些浏览器会把元素之间中间的注释、空白符等也会解析为子节点。


最恶心的一种方法是:你也可以把中间所有的空白符去掉。那么界面就会变得紧凑很难看。


也可以获取了全部子节点之后,判断一下节点的nodeType属性,

for(var i=0,len=element.childNodes.length;i<len;i++)

{

if(element.childNodes[i].nodeType==1)

       {

..........

}

}




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值