---
title: document.getElementById
slug: Web/API/Document/getElementById
tags:
  - API
  - DOM
  - Documento
  - Elementos
  - Referencia
  - Web
  - id
  - metodo
translation_of: Web/API/Document/getElementById
---
<div>{{ ApiRef("DOM") }}</div>

<div> </div>

<p>Devuelve una referencia al elemento por su <a href="/en-US/docs/DOM/element.id" title="en-US/docs/DOM/element.id">ID</a>.</p>

<h2 id="Syntax" name="Syntax">Sintaxis</h2>

<pre class="brush: js">elemento = document.getElementById(<em>id</em>);
</pre>

<h3 id="Parámetros">Parámetros</h3>

<dl>
 <dt><code><strong>id</strong></code></dt>
 <dd>Es una cadena sensible a mayúsculas referida al ID único del elemento buscado.</dd>
</dl>

<h3 id="Valor_Retornado"><strong>Valor Retornado</strong></h3>

<dl>
 <dt><code><strong>element</strong></code></dt>
 <dd>Es una referencia a un objeto {{domxref("Element")}}, o <code>null</code> si un elemento con el ID especificado no se encuentra en el documento.</dd>
 <dt>
 <h2 id="Ejemplo">Ejemplo</h2>

 <h3 id="HTML">HTML</h3>

 <pre class="brush: html">&lt;html&gt;
&lt;head&gt;
   &lt;title&gt;Ejemplo getElementById&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
   &lt;p id="para"&gt;Cualquier texto acá&lt;/p&gt;
   &lt;button onclick="changeColor('blue');"&gt;Azul&lt;/button&gt;
   &lt;button onclick="changeColor('red');"&gt;Rojo&lt;/button&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>

 <h3 id="JavaScript">JavaScript</h3>

 <pre class="brush: js">function changeColor(newColor) {
   var elem = document.getElementById('para');
   elem.style.color = newColor;
}
</pre>

 <h3 id="Resultado">Resultado</h3>

 <p>{{EmbedLiveSample('Ejemplo', 250, 100)}}</p>
 </dt>
</dl>

<h2 id="Notes" name="Notes">Notas</h2>

<p>Los usuarios nuevos deberían notar que escribir en mayúsculas 'Id' en el nombre de este método <em>debe ser corregida</em> para que el código sea válido - 'getElementByID' no funcionará a pesar de que parezca natural.</p>

<p>A diferencia de otros métodos similares, getElementById sólo está disponible como un método del objeto global document, y no se encuentra disponible como un método en todos los objetos  del DOM. Como los valores ID deben ser únicos a traves del documento, no existe necesidad para versiones "locales" de la función.</p>

<h2 id="Ejemplo_2">Ejemplo</h2>

<pre class="brush: html">&lt;!doctype html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;Documento&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div id="parent-id"&gt;
        &lt;p&gt;Hola Mundo 1&lt;/p&gt;
        &lt;p id="test1"&gt;Hola Mundo 2&lt;/p&gt;
        &lt;p&gt;Hola palabra 3&lt;/p&gt;
        &lt;p&gt;Hola palabra 4&lt;/p&gt;
    &lt;/div&gt;
    &lt;script&gt;
        var parentDOM = document.getElementById('parent-id');
        var test1=parentDOM.getElementById('test1');
        //lanza error
        //Uncaught TypeError: parentDOM.getElementById is not a function
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>

<p>Si no existe un elemento con la <code>id</code> solicitada, esta función devuelve <code>null</code>. Note que el parámetro <code>id</code> es sensible a mayúsculas, así que <code>document.getElementById("Main")</code> devolverá <code>null</code> dentro del elemento <code>&lt;div id="main"&gt;</code> porque "M" y "m" son diferentes para los propósitos de este método.</p>

<p><strong>Elementos que no se encuentren</strong> en el documento no serán buscados por <code>getElementById()</code>. Cuando se cree un elemento y se le asigne un ID, debe insertar el elemento dentro del árbol del documento con {{domxref("Node.insertBefore()")}} u otro método similar antes de que se pueda acceder a el con <code>getElementById()</code>:</p>

<div id="&lt;strong>m&lt;/strong>ain">
<pre class="brush: js">var element = document.createElement("div");
element.id = 'testqq';
var el = document.getElementById('testqq'); // el será null!
</pre>

<p><strong>Documentos no-HTML</strong>. La implementación de DOM debe tener información que diga que atributos son del tipo ID. Los atributos con el nombre "id" son son del tipo ID a menos que se los defina en el DTD del documento. El atributo <code>id</code> es definido para ser del tipo ID en los casos comunes de <a href="https://developer.mozilla.org/en-US/docs/XHTML">XHTML</a>, <a href="/es/docs/Mozilla/Tech/XUL">XUL</a>,  y otros. Las implementaciones que no sepan si los atributos son o no del tipo ID se espera que retornen null.</p>

<h2 id="Specification" name="Specification">Especificación</h2>

<table>
 <tbody>
  <tr>
   <th scope="col">Especificación</th>
   <th scope="col">Status</th>
   <th scope="col">Comentarios</th>
  </tr>
  <tr>
   <td>{{SpecName('DOM1','level-one-html.html#method-getElementById','getElementById')}}</td>
   <td>{{Spec2('DOM1')}}</td>
   <td>Definición inicial para la interfase</td>
  </tr>
  <tr>
   <td>{{SpecName('DOM2 Core','core.html#ID-getElBId','getElementById')}}</td>
   <td>{{Spec2('DOM2 Core')}}</td>
   <td>Supersede DOM 1</td>
  </tr>
  <tr>
   <td>{{SpecName('DOM3 Core','core.html#ID-getElBId','getElementById')}}</td>
   <td>{{Spec2('DOM3 Core')}}</td>
   <td>Supersede DOM 2</td>
  </tr>
  <tr>
   <td>{{SpecName('DOM WHATWG','#interface-nonelementparentnode','getElementById')}}</td>
   <td>{{Spec2('DOM WHATWG')}}</td>
   <td>Intend to supersede DOM 3</td>
  </tr>
 </tbody>
</table>

<h2 id="Browser_Compatibility" name="Browser_Compatibility">Compatibilidad con navegadores</h2>

<p>{{ CompatibilityTable() }}</p>

<div id="compat-desktop">
<table class="compat-table">
 <tbody>
  <tr>
   <th>Feature</th>
   <th>Chrome</th>
   <th>Firefox (Gecko)</th>
   <th>Internet Explorer</th>
   <th>Opera</th>
   <th>Safari (WebKit)</th>
  </tr>
  <tr>
   <td>Basic support</td>
   <td>1.0</td>
   <td>{{ CompatGeckoDesktop(1.0) }}</td>
   <td>5.5</td>
   <td>7.0</td>
   <td>1.0</td>
  </tr>
 </tbody>
</table>
</div>

<div id="compat-mobile">
<table class="compat-table">
 <tbody>
  <tr>
   <th>Feature</th>
   <th>Android</th>
   <th>Firefox Mobile (Gecko)</th>
   <th>IE Phone</th>
   <th>Opera Mobile</th>
   <th>Safari Mobile</th>
  </tr>
  <tr>
   <td>Basic support</td>
   <td>1.0</td>
   <td>{{ CompatGeckoMobile(1.0) }}</td>
   <td>6.0</td>
   <td>6.0</td>
   <td>1.0</td>
  </tr>
 </tbody>
</table>
</div>

<h2 id="See_also" name="See_also">Ver también</h2>

<ul>
 <li>La referencia <a href="/en-US/docs/DOM/document" title="en-US/docs/DOM/document">document</a> para otros métodos y propiedades que se pueden usar para obtener referencias a elementos en el documento.</li>
 <li><a href="/en-US/docs/Web/API/document.querySelector">document.querySelector()</a> para selectores via consultas como <code>'div.myclass'</code></li>
 <li><a href="/en-US/docs/xml/xml:id" title="en-US/docs/xml/id">xml:id</a> - tiene un método utilitario para permitir que <code>getElementById()</code> obtenga 'xml:id' en documentos XML documents (como los retornados por llamadas Ajax.</li>
</ul>
</div>