Debuggin’ the DOM Tree

Rhino beetle on tree

In the past, I have written about ways to debug, which, in most cases, incorporates using the inspection tool built into modern browsers. That is definitely a cool tool and the one I use the most. With that said, I want to talk a bit today about debugging the DOM and how you can even use the DOM to debug itself.

With the HTML DOM, it does not take long to get things complex. We need to be able to dissect…or slice and dice…things up to fix any bugs. You have seen the usage of alerts, the console, document.writes and breakpoints. Here is another tip…

Utilize the DOM itself to tell you what is happening…

createElement() can be used within the DOM to ‘manufacture’ HTML code and then use appendChild to add to it. So what would this look like? Imagine you have an application that changes as the user clicks on buttons, but it is not functioning as intended. You could put an empty div on your page…

<div id="history"></div>

You can then use this div to write content to the page to observe what is happening within the DOM code you construct. Imagine you have a function running and you have code in there that is flow control code (if statements, switch statements, etc.). Within this code, you are attempting to alter the DOM. You can write a function that will record the information to your history div right on your page.

// Update the decision history
var history = document.getElementById("history");
if (someVar!= 0) { // This would be what piece of code you are testing
    // Add the latest info to the history
    var someElem = document.createElement("p");
    someElem.appendChild(document.createTextNode("Description Text: " + aVar+ " -> some more description text" + bVar+ " : " + cVar)); 
        // variables are examples that are pulled from your flow control code
    history.appendChild(someElem);
} else {
    // Clear the decision history
    while (history.firstChild)
    history.removeChild(history.firstChild);
}

All this code does is pull information from the flow control code and dynamically create it and stick it into the history div.

Happy Coding!

Clay Hess

More To Explore

Code

Exploring the Broadcast Channel API: Inter-Tab Communication

Intercommunication between different contexts (like tabs, iframes or workers) of the same origin has often been a challenge. With the Broadcast Channel API, developers now have a powerful tool to easily communicate between browsing contexts. In this blog post, we’ll dive deep into the capabilities of the Broadcast Channel API, exploring its features, use cases, and how it can be effectively implemented in your projects.

computer, laptop, work place-2982270.jpg
Code

Unlocking Wireless Communication: A Dive into the Bluetooth API

Wireless communication has become an integral part of our daily lives, and Bluetooth technology is at the forefront of this revolution, enabling devices to exchange data over short distances and creating a world more interconnected than ever before. At the heart of this technology lies the Bluetooth Application Programming Interface (API), a powerful tool for developers looking to harness the capabilities of Bluetooth in their applications. In this blog post, we’ll explore what the Bluetooth API is, how it works, and the possibilities it opens up for innovation in wireless communication.

Share This Post

small_c_popup.png

Need help?

Let's have a chat...


Login

Jump Back In!

Here at Webolution Designs, we love to learn. This includes sharing things we have learned with you. 

Register

Begin Your Learning Journey Today!

Come back inside to continue your learning journey.