2012-03-19 44 views
0

我尝试编写一个Safari扩展,它使用表格可视化网站上的一些数据。所以,要计算我做了一些JavaScript的数据:Safari扩展中的DOM修改

var table; 
table = document.body.getElementsByClassName('summary'); 
console.log(table); 

var rows = table.getElementsByTagName('tr'); 
console.log(rows); 

第二行工作正常,但对于第五行我得到这个错误:

TypeError: 'undefined' is not a function (evaluating 'table.getElementsByTagName('tr')')

这是为什么? Whith this code:

document.body.getElementsByClassName('summary').getElementsByTagName('tr'); 

这是一样的。

我的错误是什么?

回答

3

getElementsByClassName这个方法返回数组你,所以你需要选择表从这个数组: var rows = table[0].getElementsByTagName('tr');如果第一次发现表是你需要什么,但它似乎没有表在第二行中。

+0

就是这样!非常感谢你!我意识到Iam在JavaScript中还不够好。 :-) – Juuro 2012-03-19 14:45:43

+3

微调:getElementsByClassName的结果不是一个真正的数组,而是一个[NodeList](https://developer.mozilla.org/en/DOM/NodeList),它是一个类似数组的对象。不要尝试在NodeList上使用像pop和forEach这样的数组方法。 – canisbos 2012-03-19 20:20:24