我正在尝试获取另一个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 ...)
答案 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)
var wrappingdiv = document.getElementById("divId");
var insidediv = wrappingdiv.getElementsByTagName('div');
var i = 0;
for(i=0;i<insidediv.length;i++)
alert(insidediv[i].innerHTML);