无法使用javascript检索表上的单元格的特定值

时间:2015-03-12 05:29:32

标签: javascript html

我使用以下代码检索表的特定单元格的值。:

function addCatAttr()
{
   var tbl = document.getElementById("tblAttributes1");
   if (tbl.rows.length > 1)
   {
       for ( var i = 1 ; i < tbl.rows.length ; i++ )
       {
           var r = tbl.rows[i];
           var catname1 =r.cells[0].document.getElementsByTagName("input").item(1).value;
           var lifecycycleattr1 = r.cells[0].document.getElementsByTagName("input").item(2).value;
           var stateattr1 = r.cells[0].document.getElementsByTagName("input").item(3).value;

        }
    }
}

我的HTML代码是:

<table id="tblAttributes1">
    <tr>
        <td>Category</td>
        <td>Life Cycle Attribute</td>
        <td>State Attribute</td>
    </tr>
    <tr>
        <td>cat1</td>
        <td>pf</td>
        <td>state</td>
    </tr>
</table>

I want to retrieve each value of a particular.

它只是一个例子。我有更多的两行,我需要循环来获取每个单元格的值。

3 个答案:

答案 0 :(得分:1)

看看这是否指向正确的方向:

function addCatAttr()
{
   var tbl = document.getElementById("tblAttributes1");
   if (tbl.rows.length > 1)
   {
       for ( var i = 1 ; i < tbl.rows.length ; i++ )
       {
           var r = tbl.rows[i];
           var catname1 =r.cells[0].innerText;
           var lifecycycleattr1 = r.cells[1].innerText;
           var stateattr1 = r.cells[2].innerText;
           
           alert('catname1: ' + catname1 + '\r\n' +
                 'lifecycycleattr1: ' + lifecycycleattr1 + '\r\n' +
                 'stateattr1: ' + stateattr1 + '\r\n');
        }
    }
}
<table id="tblAttributes1">
    <tr>
        <td>Category</td>
        <td>Life Cycle Attribute</td>
        <td>State Attribute</td>
    </tr>
    <tr>
        <td>cat1</td>
        <td>pf</td>
        <td>state</td>
    </tr>
</table>

<input type="button" onclick="addCatAttr()" value="Click me" />

答案 1 :(得分:0)

这可以帮助更好......

function addCatAttr()
{
   var tbl = document.getElementById("tblAttributes1");
   if (tbl.rows.length > 1)
   {
       for ( var i = 1 ; i < tbl.rows.length ; i++ )
       {
           var r = tbl.rows[i];
           var catname1 =r.cells[0].innerHTML;
           var lifecycycleattr1 = r.cells[1].innerHTML;
           var stateattr1 = r.cells[2].innerHTML;

           alert('catname1: ' + catname1 + '\r\n' +
                 'lifecycycleattr1: ' + lifecycycleattr1 + '\r\n' +
                 'stateattr1: ' + stateattr1 + '\r\n');
        }
    }
}



<table id="tblAttributes1">
    <tr>
        <td>Category</td>
        <td>Life Cycle Attribute</td>
        <td>State Attribute</td>
    </tr>
    <tr>
        <td>cat1</td>
        <td>pf</td>
        <td>state</td>
    </tr>
</table>

<input type="button" onclick="addCatAttr()" value="Click me" />

答案 2 :(得分:0)

你需要为表长度应用两个for循环,为tr中的每个td应用另一个for循环。这是代码。

var table = document.getElementById(&#39; tblAttributes1&#39;),     rows = table.getElementsByTagName(&#39; tr&#39;);

for(var i = 0; i&lt; rows.length; i ++){

var tds = rows[i].getElementsByTagName('td');
for(var x=0;x<tds.length;x++){
    console.log(tds[x].innerHTML);
 }

小提琴是 - http://jsfiddle.net/09q6n3m2/16/