通过rows / cells集合访问时,td对象上的未定义id属性

时间:2010-03-10 05:10:23

标签: javascript dom

我在这里做错了什么:

当我尝试在TableCell对象上使用getttribute ['id']方法时,我通过遍历表行/单元格获得它返回undefined:

var rows = document.getElementById["table"].rows;
var cells;
for(var i=0; i < rows.length; i++) {
 cells = rows[i].cells
 for(var j=0; j < cells.length; j++) {
  alert(cells[j].innerHTML); //returns Cell1
  alert(cells[j].getAttribute["id"]); //returns undefined
  alert(document.getElementById["c1"].innerHTML); //returns Cell1

 }
}

这是HTML示例:

    <table id="table">
    <tbody>
        <tr>
         <td id="c1">Cell1</td>
        </tr>
    </tbody> 
</table>

问题是为什么getAttribute方法在通过cells [j]访问时为所有属性返回undefined?

5 个答案:

答案 0 :(得分:1)

getAttribute 是一种方法,您将其用作索引器

使用

alert(cells[j].getAttribute("id"));

同时替换

document.getElementById["table"].rows;

document.getElementById("table").rows;

document.getElementById["c1"].innerHTML

document.getElementById("c1").innerHTML

getElementById 也是一种方法。

答案 1 :(得分:1)

在调用[]()

时,您使用方括号getElementById代替括号getAttribute
//change

getElementById["table"]
getAttribute["id"]
getElementById["c1"]

//to

getElementById("table")
getAttribute("id")
getElementById("c1")

//Respectively.

答案 2 :(得分:0)

我不知道为什么,但getAttribute不喜欢id属性。请改用cells[j].id

答案 3 :(得分:0)

只需使用cells [j] .id来获取单元格的id。

答案 4 :(得分:0)

或者,您可以使用getAttribute方法:

xmlDoc.getElementsByTagName("sec")[0].getAttribute("id")

我会在s1找回像<sec id="s1">这样的标记。