- 0133技术站
- 联系QQ:18840023
- QQ交流群

- 微信公众号

Chrome DevTools Elements
(元素)面板中的DOM树视图显示当前网页的DOM结构。通过DOM更新来实时编辑您的网页的内容和结构。
Elements
(元素)面板中的DOM更改来修改源文件。重新加载页面会清除DOM树任何的修改。使用Elements
(元素)面板在DOM树中检查页面中的所有元素。选择任何元素并检查应用于它的样式。
这里有几种方法来检查一个元素:
右键点击页面上的任何元素并在右键菜单中选择Inspect
(检查)。
按Ctrl+Shift+C(Windows)或Cmd+Shift+C(Mac)在检查元素模式下打开DevTools,然后将鼠标悬停在元素上。DevTools会在Elements
(元素)面板中自动突出显示你鼠标悬停的元素。单击元素退出检查模式,同时保持元素在Elements
(元素)面板中突出显示。
点击Inspect Element
(检查元素)按钮( ) 进入检查元素模式,然后在某个元素上点击。
在控制台中使用 inspect 方法,如 inspect(document.body)
。
使用鼠标或键盘浏览DOM结构。
折叠的节点旁边有一个向右的箭头:
展开的节点旁边有一个向下的箭头:
使用你的鼠标:
使用你的键盘:
Up Arrow
(向上箭头)键选择当前节点上方的节点。Down Arrow
(向下箭头)键选择当前节点下方的节点。Right Arrow
(向右箭头)键展开折叠的节点。再次按下可移动到(现在展开的)节点的第一个子节点。您可以使用这个技巧快速浏览深层嵌套的节点。在Elements
(元素)面板的底部是一个面包屑跟踪。
当前选择的节点以蓝色高亮显示。左侧的节点表示是当前节点的父节点。再左侧的节点的父节点的父节点,以此类推,直到跟节点。
浏览DOM结构,在面包屑跟踪上移动鼠标,或点击即可:
DevTools在屑跟踪跟踪器中显示尽可能多的节点元素。如果整个跟踪的节点元素显示不下,省略号(...)表示隐藏部分节点元素。单击省略号来显示隐藏的元素:
要编辑DOM节点名称或属性:
Add Attribute
(添加属性)或Edit Attribute
(编辑属性)。Edit Attribute
(编辑属性)是上下文相关的;你点击的部分决定了哪些内容将被编辑。结束编辑会在完成后自动更新。
要编辑DOM节点和其子节点的HTML:
Edit as HTML
(编辑HTML)。点击,按住(鼠标左键)并拖动节点就可以移动该节点,拖动到蓝线表示的相应位置,释放鼠标左键即可。
要删除DOM节点:
Delete Node
(删除节点)。more actions
(更多操作)菜单允许你以各种方式与DOM节点交互。要查看菜单,请右键单击节点,或选择一个节点,然后点击more actions
(更多操作)按钮()。该按钮仅显示在当前选定元素的最左侧。
当您将鼠标悬停在或选中一个DOM节点时,渲染的节点在视口中会被突出显示。如果节点被滚动到屏幕之外,如果该节点在当前视口上方,您将在视口顶部看到一个提示条,如果该节点在当前视口下方,则在底部具有一个提示条。例如,在下面的 DevTools 截图中,表示Elements
(元素)面板中当前选定的元素位于视口下方。
要滚动页面以使节点显示在视口中,右键单击该节点并选择Scroll into View
(滚动到视图)菜单即可。
设置DOM断点可以用来调试复杂的JavaScript应用程序。例如,如果你的JavaScript改变了DOM元素的样式,设置一个DOM断点当元素的属性被修改时触发。在以下DOM更改都会触发断点:子树的变化,属性改变,节点删除。
打开更多操作菜单,然后选择Break on...
,再选择对于的断点类型。
当子元素被添加,删除或移动时,会触发Subtree Modifications
(子树修改)断点。例如,如果在main-content
元素上设置一个Subtree Modifications
(子树修改)断点,以下代码会触发该断点:
var element = document.getElementById('main-content'); //modify the element's subtree. var mySpan = document.createElement('span'); element.appendChild( mySpan );
当一个元素(类,id,name)的属性动态改变时,会触发Attribute Modifications
(属性修改)断点:
var element = document.getElementById('main-content'); // class attribute of element has been modified. element.className = 'active';
当一个节点从DOM中删除时,会触发Node Removal
(节点移除)断点:
document.getElementById('main-content').remove();
Elements
(元素)和Sources
(源文件)面板中包含了用于管理DOM断点的窗格。
每个断点都列出了一个元素标识符和断点类型。
通过以下任何一种方式与每个列出的断点交互:
Elements
(元素)面板中的节点上)。Elements
(元素)面板中选择它。当你触发一个DOM断点,断点在DOM Breakpoints
(DOM断点)窗格中突出显示。Call Stack
(堆栈)窗格显示调试器暂停的原因:
在Event Listeners
(事件侦听器)窗格中查看与DOM节点相关联的JavaScript事件。
Event Listeners
(事件侦听器)窗格中顶级的项显示注册的事件类型。
在事件侦听器的顶级项目窗格中显示已注册的侦听器的事件类型。
点击事件类型旁边的箭头(例如click
),可以看到已注册的事件处理程序的列表。每个处理程序由类似CSS选择器的元素标识符标识,例如document
或button#call-to-action
。如果同一个元素注册了多个处理程序,元素会被重复列出。
点击元素标识符旁边的展开箭头以查看事件处理程序的属性。Event Listeners
(事件侦听器)窗格为每个侦听器列出以下属性:
事件侦听器属性 | 描述 |
---|---|
handler | 包含一个回调函数。右键单击该函数并选择Show Function Definition (显示函数定义)以查看函数被定义在哪里(如果源代码可用)。 |
useCapture | 一个布尔值,说明是否在addEventListener 上设置了useCapture标志。 |
当勾选Ancestors
(祖先)复选框时,除了当前选中节点的事件侦听器,还会显示当前选中节点的祖先元素的事件侦听器。
当取消勾选该复选框时,仅显示当前选定节点的事件侦听器。
奉上截图测试代码:
<!doctype html> <html> <body onload="console.log('onload');"> <div onfocus="console.log('focus');"> <button id="button" onclick="console.log('onclick');">click me</button> </div> </body> </html>
一些JavaScript框架和库将原生DOM事件封装到自定义事件API中。在过去,这使得很难用DevTools检查事件侦听器,因为函数定义只是引用框架或库代码。Framework listeners
(框架侦听器)功能解决了这个问题。
当勾选Framework listeners
(框架侦听器)复选框时,DevTools自动解析框架或库封装事件的代码,然后告诉你,代码中实际绑定事件的位置。
当取消勾选Framework listeners
(框架侦听器)复选框时,事件侦听器代码可能会解析框架或库代码中的某处。
奉上截图测试代码:
<!doctype html> <html> <script src="https://code.jquery.com/jquery-2.2.0.js"></script> <body> <button id="button">click me, please</button> <script> $('#button').click(function() { $('#button').text('hehe, that tickled, thanks'); }); </script> </body> </html>
推荐手册