GetElementById(对象xraywrapper)中的getElementsByTagName?

时间:2013-07-11 09:13:46

标签: javascript

我正在尝试获取另一个div内的div,因为第二个div的ID是可变的,我使用

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 个答案:

答案 0 :(得分:3)

如果您没有任何ID为divId的元素,那么wrappingdiv将等于null:

尝试获取null.getElementsByTagName时,您会收到类型错误:

  

TypeError:无法读取null

的属性'getElementsByTagName'

答案 1 :(得分: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"

答案 2 :(得分:1)

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

答案 3 :(得分:0)

DEMO

  var wrappingdiv = document.getElementById("divId");
  var insidediv = wrappingdiv.getElementsByTagName('div');
  var i = 0;
    for(i=0;i<insidediv.length;i++)
    alert(insidediv[i].innerHTML);