Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chrome开发工具-GetElementsByCassName找不到元素_Javascript_Html_Google Chrome_Getelementsbyclassname - Fatal编程技术网

Javascript Chrome开发工具-GetElementsByCassName找不到元素

Javascript Chrome开发工具-GetElementsByCassName找不到元素,javascript,html,google-chrome,getelementsbyclassname,Javascript,Html,Google Chrome,Getelementsbyclassname,我正在尝试使用Chrome开发工具进行一些调试。我正在查看HTML—在控制台中尝试使用documents.getElementsByClassName查找相应的内容—调用返回空集—而实际上我正在查看元素。我尝试复制粘贴类名-结果相同-请参见下面的屏幕截图。我错过了什么 document.getElementsByClassName返回一个数组,因此必须指定所需元素的索引。例如: document.getElementsByClassName("class")[0]; 您将获得空白节点列表,因为

我正在尝试使用Chrome开发工具进行一些调试。我正在查看HTML—在控制台中尝试使用documents.getElementsByClassName查找相应的内容—调用返回空集—而实际上我正在查看元素。我尝试复制粘贴类名-结果相同-请参见下面的屏幕截图。我错过了什么

document.getElementsByClassName返回一个数组,因此必须指定所需元素的索引。例如:

document.getElementsByClassName("class")[0];

您将获得空白节点列表,因为您正在iFrame中查看DOM树。如果需要访问iFrame中的节点,首先需要访问iFrame的窗口和DOM

你可以用下面的方法来做

var iframe = document.getElementById('iframeId');
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
var innerWindow = iframe.contentWindow;
一旦有了window和DOM,您就可以在文档上调用与DOM相关的方法,或者如果您有任何其他DOM解析库,比如jQuery,它的对象存储在DOM上。你可以像下面那样使用它

var iframe = document.getElementById('iframeId');
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
var innerWindow = iframe.contentWindow;
使用文档

innerDoc.getElementsByClassName('mh')
使用窗口

innerWindow.$('.mh')

您正在查看的DOM树可能位于一个框架中。。。检查工具栏中的“帧选择器”下拉列表…@vishwanath啊!这就可以解释了。只需查看层次结构,所讨论的元素就在iframe中。在这种情况下,访问它的正确方式是什么?如果您只想在chrome开发者控制台中进行检查。控制台上方的屏幕截图中显示的上下文选择器已被清除。用那个。如果你需要编程,我宁愿为此写答案。也许这会有帮助:@vishwanath是的,我需要编程-但我从你那里得到了答案。关于这个问题,把你的评论写在回答中,我会接受的。你读了问题/看了屏幕截图了吗?我知道它返回一个数组——但在我的例子中,它返回一个空数组,而数据显然在那里。它实际上返回一个节点列表,而不是数组。我是否正确地认为innerDoc方法特定于本机/普通Javascript,而innerWindow方法特定于jQuery?它们(即两个变量的值)是不可互换的?innerWindow是包含所有全局变量的窗口对象,jQuery是一个。而document对象包含domapi yes,它是访问DOM的本机对象。PS:jQuery只在内部使用document对象。恐怕我不理解您回复评论中的一些术语/原理,可能是因为我没有接受过任何正式的JS培训。但我将重新表述这个问题:使用vanilla JS,我应该使用innerDoc方法吗?