<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="https://web-engineering.info"  xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>web-engineering.info - DOM</title>
 <link>https://web-engineering.info/DOM</link>
 <description>The Docoment Object Model (DOM) defines interfaces for programmatically accessing and manipulating the elements of a (typically HTML or SVG) document.
The DOM interfaces are available in JavaScript in the form of a large set of built-in objects with specific properties and methods.
</description>
 <language>en</language>
<item>
 <title>Web Development Pitfall No.1: Confusing a DOM collection with a JS array</title>
 <link>https://web-engineering.info/node/49</link>
 <description>&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden view-mode-rss&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;h2&gt;Summary&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Don&#039;t confuse a DOM collection with a JS array: Array functions, such as the &lt;code&gt;forEach&lt;/code&gt; looping method, cannot be applied to a DOM collection!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For instance, when you retrieve all rows of an HTML table element, you get an &lt;code&gt;HTMLCollection&lt;/code&gt;, which is an array-like object, but not an instance of &lt;code&gt;Array&lt;/code&gt;, and therefore the following code does not succeed because the &lt;code&gt;Array&lt;/code&gt; method &lt;code&gt;forEach&lt;/code&gt; is not defined for an &lt;code&gt;HTMLCollection&lt;/code&gt; like &lt;code&gt;myTableEl.rows&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;
var myTableEl = document.getElementById(&quot;myTableEl&quot;);
myTableEl.rows.forEach( function (row) {
  ... // process row
})&lt;/pre&gt;

&lt;p&gt;There are two solutions how to loop over a DOM collection like &lt;code&gt;myTableEl.rows&lt;/code&gt;. Either by using an ordinary for loop, like so:&lt;/p&gt;

&lt;pre&gt;
var myTableEl = document.getElementById(&quot;myTableEl&quot;);
var i=0, row=null;
for (i=0; i &amp;lt; myTableEl.rows.length; i++) {
  row = myTableEl.rows[i];
  ... // process row
}&lt;/pre&gt;

&lt;p&gt;or by invoking the &lt;code&gt;Array&lt;/code&gt; method &lt;code&gt;forEach&lt;/code&gt; on the DOM collection with the help of &lt;code&gt;call&lt;/code&gt; in the following way:&lt;/p&gt;

&lt;pre&gt;
var myTableEl = document.getElementById(&quot;myTableEl&quot;);
Array.prototype.forEach.call( myTableEl.rows, function (row) {
  ... // process row
})&lt;/pre&gt;

&lt;h2&gt;More on DOM Collections&lt;/h2&gt;

&lt;p&gt;Mozilla provides a pretty good &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model&quot;&gt;overview of DOM interfaces&lt;/a&gt;, though not all methods have proper documentation yet. The ultimate reference is, of course, the hard-to-digest DOM4 specification, which comes in two forms: the &lt;a href=&quot;http://www.w3.org/TR/dom/&quot;&gt;W3C DOM4 spec&lt;/a&gt; and the&amp;nbsp; WHATWG&#039;s &lt;a href=&quot;https://dom.spec.whatwg.org/&quot;&gt;&lt;span class=&quot;content&quot;&gt;DOM Living Standard&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;content&quot;&gt;.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;A DOM collection is an array-like object &lt;code&gt;coll&lt;/code&gt;, the items of which can be accessed with the array index notation &lt;code&gt;coll[i],&lt;/code&gt; and that has a &lt;code&gt;length&lt;/code&gt; attribute such that a for loop can be used for iterating over it. There are 4 different types of DOM collections:&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;The most important one, &lt;code&gt;HTMLCollection&lt;/code&gt;, represents a collection of HTML elements, typically obtained by retrieving HTML elements with one of the methods &lt;code&gt;getElementsByTagName&lt;/code&gt;, &lt;code&gt;getElementsByClassName&lt;/code&gt; or &lt;code&gt;querySelectorAll&lt;/code&gt;.&lt;/li&gt;
	&lt;li&gt;A &lt;code&gt;DOMTokenList&lt;/code&gt; represents a collection of items of an HTML attribute value list, such as the values of the HTML &lt;code&gt;class&lt;/code&gt; attribute.&lt;/li&gt;
	&lt;li&gt;A &lt;code&gt;NamedNodeMap&lt;/code&gt; represents a collection of attributes (notice that, despite the historical name of this DOM collection type, attributes are no longer considered to be nodes in DOM4).&lt;/li&gt;
	&lt;li&gt;A &lt;code&gt;NodeList&lt;/code&gt; represents a collection of DOM nodes, which may be elements, plain text, comments or processing instructions.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;All of these DOM collections have the &lt;code&gt;item&lt;/code&gt; method in common, which implies that their items can be accessed with the array index notation. Two of them,&amp;nbsp;&lt;code&gt;HTMLCollection&lt;/code&gt; and &lt;code&gt;NamedNodeMap&lt;/code&gt;, also have a (get)&lt;code&gt;namedItem&lt;/code&gt; method, which implies that their items can be accessd with the key-value map notation. In the case of an &lt;code&gt;HTMLCollection&lt;/code&gt;, the keys are provided by the elements&#039; &lt;code&gt;id&lt;/code&gt; attribute, while in the case of a &lt;code&gt;NamedNodeMap&lt;/code&gt;, the keys are provided by the attribute names.&lt;/p&gt;

&lt;p&gt;This is summarized in the following UML class diagram.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;data:image/png;base64,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&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Notice that a DOM element is a special type of DOM node (as expressed by the UML generalization arrow), so we can also use the attribute &lt;code&gt;childNodes&lt;/code&gt; for an HTML element or SVG element for collecting all child nodes of it in the form of a &lt;code&gt;NodeList&lt;/code&gt;, including child&amp;nbsp;elements, but also comments, processing instructions, etc. However, when you only need to retrieve child elements, such as all child elements of a certain &lt;code&gt;div&lt;/code&gt;, then you better use the method &lt;code&gt;children&lt;/code&gt;, whcih returns an &lt;code&gt;HTMLCollection&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;section class=&quot;field field-name-field-category field-type-taxonomy-term-reference field-label-above view-mode-rss&quot;&gt;&lt;h2 class=&quot;field-label&quot;&gt;Category:&amp;nbsp;&lt;/h2&gt;&lt;ul class=&quot;field-items&quot;&gt;&lt;li class=&quot;field-item even&quot;&gt;&lt;a href=&quot;/JavaScript&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;JavaScript&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;field-item odd&quot;&gt;&lt;a href=&quot;/DOM&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;DOM&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt;&lt;div class=&quot;easy_social_box clearfix horizontal easy_social_lang_und&quot;&gt;
            &lt;div class=&quot;easy_social-widget easy_social-widget-twitter first&quot;&gt;&lt;a href=&quot;http://twitter.com/share&quot; class=&quot;twitter-share-button&quot;
data-url=&quot;https://web-engineering.info/node/49&quot;
data-count=&quot;horizontal&quot;
data-lang = &quot;en&quot;
data-via=&quot;&quot;
data-related=&quot;:Check it out!&quot;
data-text=&quot;Web Development Pitfall No.1: Confusing a DOM collection with a JS array&quot;&gt;Tweet&lt;/a&gt;&lt;/div&gt;
          &lt;div class=&quot;easy_social-widget easy_social-widget-facebook&quot;&gt;&lt;fb:like href=&quot;https://web-engineering.info/node/49&quot; send=&quot;true&quot; layout=&quot;button_count&quot; width=&quot;88&quot; show_faces=&quot;true&quot; action=&quot;like&quot; colorscheme=&quot;light&quot; font=&quot;&quot;&gt;&lt;/fb:like&gt;&lt;/div&gt;
          &lt;div class=&quot;easy_social-widget easy_social-widget-googleplus&quot;&gt;&lt;div class=&quot;g-plusone&quot; data-size=&quot;medium&quot; data-annotation=&quot;bubble&quot; data-href=&quot;https://web-engineering.info/node/49&quot;&gt;&lt;/div&gt;&lt;/div&gt;
          &lt;div class=&quot;easy_social-widget easy_social-widget-linkedin last&quot;&gt;&lt;script type=&quot;in/share&quot; data-url=&quot;https://web-engineering.info/node/49&quot; data-counter=&quot;right&quot;&gt;&lt;/script&gt;&lt;/div&gt;
  &lt;/div&gt; &lt;!-- /.easy_social_box --&gt;</description>
 <pubDate>Thu, 10 Dec 2015 02:44:23 +0000</pubDate>
 <dc:creator>gwagner</dc:creator>
 <guid isPermaLink="false">49 at https://web-engineering.info</guid>
 <comments>https://web-engineering.info/node/49#comments</comments>
</item>
</channel>
</rss>
