0

我试图得到一个div在另一个里面div的,因为第二个的 iddiv是可变的,我使用

var wrappingdiv = document.getElementById('divId')

然后得到包装div

var insidediv = wrappingdiv.getElementsByTagName('div')

但我得到getElementsByTagName不是函数错误,我猜语法是错误的,你们能把我引向正确的方向吗?

提前致谢。

编辑:我会纠正自己,我正在尝试获取 gmail 电子邮件的正文,所以:

var element = content.document.getElementsByClassName("ii gt m13fbe3a51e95e196 adP adO");

它返回一个object xraywrapper[object htmlcollection]

编辑 2:

我正在使用 mozilla firefox,并且正在开发自己的扩展程序,以访问 Google 邮件的源代码,我使用简单的 javascript (content.document ...)

4

4 回答 4

3

如果您没有任何具有 id 的元素,divId则将wrappingdiv等于 null:

当你试图得到null.getElementsByTagName你会得到一个类型错误:

TypeError:无法读取 null 的属性“getElementsByTagName”

于 2013-07-11T09:16:36.390 回答
2

var element = content.document.getElementsByClassName(
    "ii gt m13fbe3a51e95e196 adP adO");

getElements<- 这s意味着这将返回多个元素(在类似列表的集合中),而不仅仅是一个元素。

您可能只想选择它找到的第一个。

var element = content.document.getElementsByClassName(
    "ii gt m13fbe3a51e95e196 adP adO")[0];

还有一个小风险,它可能不会出现m13fbe3a51e95e196在每一页上,或者永远不会出现。所以也许你应该概括一下你的搜索。只搜索类"adP"怎么样?

于 2013-07-11T09:53:58.277 回答
1

语法没有错。document.getElementById('divId')可能只是无法匹配任何现有元素的 id,因此它返回null(没有getElementsByTagName方法)。

于 2013-07-11T09:16:53.493 回答
0

演示

  var wrappingdiv = document.getElementById("divId");
  var insidediv = wrappingdiv.getElementsByTagName('div');
  var i = 0;
    for(i=0;i<insidediv.length;i++)
    alert(insidediv[i].innerHTML);
于 2013-07-11T09:36:25.167 回答