can';t通过chrome扩展上的javascript访问易趣网站上的元素
我有一个chrome扩展,可以从ebay订单页面检索所有订单, 上个月效果很好,但现在突然无法访问某些元素 让elGridComp=document.getElementsByClassName(“表格网格组件”); 设elOrders=elGridComp[0]。childNodes[2]。childNodes//eOrders具有所有元素(示例中为105) eOrders[0].getAttribute(“类”)//工作 eOrders[2].getAttribute(“类”)//抛出异常 例如,eOrders 0,1,3,5将返回类attribure,但2,4和7将抛出异常 未捕获的TypeError:eOrders[i]。getAttribute不是函数。 随附的照片显示了elOrders中的一些首批元素can';t通过chrome扩展上的javascript访问易趣网站上的元素,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我有一个chrome扩展,可以从ebay订单页面检索所有订单, 上个月效果很好,但现在突然无法访问某些元素 让elGridComp=document.getElementsByClassName(“表格网格组件”); 设elOrders=elGridComp[0]。childNodes[2]。childNodes//eOrders具有所有元素(示例中为105) eOrders[0].getAttribute(“类”)//工作 eOrders[2].getAttribute(“类”)//抛出异常
谢谢错误消息意味着
eOrders[2]
没有getAttribute函数,如果该节点不是HTML元素而是文本节点(Chrome的devtools如果都是空白,则不会显示此类节点)或注释节点,则可能会发生这种情况
解决方案是使用子节点
,因为它只返回元素,而不像子节点
返回所有类型的节点
注意:使用devtools设置断点并检查数据的实际内容。您甚至可以选择表达式的一部分并将鼠标悬停以查看其值,例如,如果您选择
elOrders[i]
,您将看到其属性。谢谢您的回答,问题是易趣在订单之间添加了空元素,不明白他们为什么会这样做,buy once我创建了一个删除所有空元素(长度=0)的函数,eOrder和以前一样工作。你能解释一下我如何调试它吗?这是一个chrome扩展,有什么工具可以使用吗?调试会为我节省很多时间,哈哈。谢谢这是内置的浏览器开发工具。如果需要,请看医生。