Javascript Safari扩展中的DOM修改
我尝试编写一个Safari扩展,它用表将网站上的一些数据可视化。因此,为了计算数据,我使用了一些JavaScript:Javascript Safari扩展中的DOM修改,javascript,dom,safari-extension,Javascript,Dom,Safari Extension,我尝试编写一个Safari扩展,它用表将网站上的一些数据可视化。因此,为了计算数据,我使用了一些JavaScript: var table; table = document.body.getElementsByClassName('summary'); console.log(table); var rows = table.getElementsByTagName('tr'); console.log(rows); 第二行可以正常工作,但第五行出现以下错误: TypeError:“und
var table;
table = document.body.getElementsByClassName('summary');
console.log(table);
var rows = table.getElementsByTagName('tr');
console.log(rows);
第二行可以正常工作,但第五行出现以下错误:
TypeError:“undefined”不是函数(正在计算“table.getElementsByTagName('tr'))
为什么呢?使用此代码:
document.body.getElementsByClassName('summary').getElementsByTagName('tr');
都一样
我的错误是什么?
GetElementsByCassName
此方法返回数组,因此您需要从该数组中选择表:
var rows=表[0]。getElementsByTagName('tr')
如果第一个找到的表是您需要的,但第二行中似乎找不到表。getElementsByClassName
此方法返回数组,因此您需要从此数组中选择表:
var rows=表[0]。getElementsByTagName('tr')代码>如果第一个找到的表是您需要的,但第二行中似乎找不到表。就是这样!非常感谢你!我意识到我的JavaScript还不太好。:-)次要更正:GetElementsByCassName的结果不是一个真正的数组,而是一个类似数组的对象。不要试图在节点列表上使用像pop和forEach这样的数组方法。就是这样!非常感谢你!我意识到我的JavaScript还不太好。:-)次要更正:GetElementsByCassName的结果不是一个真正的数组,而是一个类似数组的对象。不要试图在节点列表上使用pop和forEach等数组方法。