<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>jmocana - maquetador web</title>
	<atom:link href="http://www.jmocana.eu/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jmocana.eu</link>
	<description>Todo sobre maquetacion y diseño web</description>
	<lastBuildDate>Tue, 02 Aug 2011 14:44:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Recargar HTML5 después de una petición Ajax</title>
		<link>http://www.jmocana.eu/2011/08/02/recargar-html5-despues-de-una-peticion-ajax/</link>
		<comments>http://www.jmocana.eu/2011/08/02/recargar-html5-despues-de-una-peticion-ajax/#comments</comments>
		<pubDate>Tue, 02 Aug 2011 12:04:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[html5]]></category>

		<guid isPermaLink="false">http://www.jmocana.eu/?p=551</guid>
		<description><![CDATA[Actuálmente me encuentro maquetando una web en HTML5 y una de las funciones que debemos incorporar a la misma es la carga de módulos de HTML5 vía Ajax con jQuery. Una vez incorporada la he probado como siempre en primer lugar en Firefox y todo perfecto. Como siempre después de firefox viene Internet Exploer y [...]]]></description>
			<content:encoded><![CDATA[<p>Actuálmente me encuentro maquetando una web en HTML5 y una de las funciones que debemos incorporar a la misma es la carga de módulos de HTML5 vía Ajax con jQuery.
Una vez incorporada la he probado como siempre en primer lugar en Firefox y todo perfecto. Como siempre después de firefox viene Internet Exploer y es en este punto donde empiezan los malos rollos <img src='http://www.jmocana.eu/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> . Al pinchar sobre uno de los enlaces del menú de navegación y realizarse la carga, los nuevos contenidos cargados han aparecido sin los estilos aplicados. El problema es que la librera Modernizr que utilizo para generar las nuevas etiquetas HTML5 solo se ejecuta la primera vez que cargamos la página por lo que todo el código que carguemos a posteriori vía Ajax no será reconocido por el navegador y por tanto saldrá sin los estilos asignados en la CSS.</p>
<p>Buscando un poco por <span rel="en">Mr.</span> Google he encontrado la librería <strong>innerShiv</strong> de tan solo 1kb aproximadamente que permite reconocer las nuevas etiquetas HTML5 añadidas al DOM ya sea vía JavaScript o Jquery.</p>
<p>Lo único que hay que hacer para que funcione es insertar la función <em>innerShiv()</em> dentro de la función que vayamos a utilizar para añadir el código ya sea de javascript o Jquery, con la única diferencia de que si utilizamos jquery tendremos que pasar un segundo parámetro a la función innerShiv, más concretamente una variable booleana false.</p>
<p>Os pongo dos ejemplos de como se utilizaría la función con javaScript y con jQuery</p>
<h2>Ejemplo javaScript</h2>
<pre><code>
s.appendChild(<strong>innerShiv</strong>("&lt;section&gt;Happy section loves CSS. (:&lt;/section&gt;"));
</code></pre>
<h2>Ejemplo jquery</h2>
<pre><code>
$(this).html(<strong>innerShiv</strong>(html, false))
</code></pre>

<p>Podéis encontrar toda la información sobre la librería creada por <a href="http://jdbartlett.com/">joe bartlett</a> en <a href="http://jdbartlett.com/innershiv/">http://jdbartlett.com/innershiv/</a>



]]></content:encoded>
			<wfw:commentRss>http://www.jmocana.eu/2011/08/02/recargar-html5-despues-de-una-peticion-ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS3 Transiciones</title>
		<link>http://www.jmocana.eu/2011/07/28/css3-transiciones/</link>
		<comments>http://www.jmocana.eu/2011/07/28/css3-transiciones/#comments</comments>
		<pubDate>Thu, 28 Jul 2011 11:11:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[css 3]]></category>
		<category><![CDATA[maquetador web]]></category>

		<guid isPermaLink="false">http://www.jmocana.eu/?p=537</guid>
		<description><![CDATA[Las transiciones css nos permiten cambiar los valores de las propiedades de las hojas de estilo suavemente durante un intervalo de tiempo. Estas suaves animaciones peden ser provocadas por distintos eventos: click, hover, focus, active, o con cualquier cambio provocado sobre el elemento. Actualmente para conseguir animar un botón cuando recibe uno de estos eventos [...]]]></description>
			<content:encoded><![CDATA[<p>Las transiciones css nos permiten cambiar los valores de las propiedades de las hojas de estilo suavemente durante un intervalo de tiempo. Estas suaves animaciones peden ser provocadas por distintos eventos: click, hover, focus, active, o con cualquier cambio provocado sobre el elemento.</p>

<p>Actualmente para conseguir animar un botón cuando recibe uno de estos eventos necesitamos hacer uso de algún <em>sprite</em> o de código javaScript si el efecto que le queremos dar a la transición es más específico. Mediante las transiciones CSS, con tan solo unas pocas líneas de código conseguiremos animar nuestros botones en poco tiempo y con efectos muy conseguidos.</p>

<h2 class="txt_ejemplo"><a title="ver ejemplo" href="http://www.jmocana.eu/2011/07/28/css3-transiciones/#fondo2">VER EJEMPLO</a></h2>

<h2>Sintaxis</h2>
<p>Nos vamos a encontrar con tres partes de la transición en la declaración:</p>
<ul>
<li><strong>transition-property:</strong> La propiedad sobre la que se va a realizar la transición</li>
<li><strong>transition-duration:</strong> Duración de la transición (ms-milisegundos, s-segundos)</li>
<li><strong>transition-timing-function:</strong> Como de rápido se da la transición. Puede tomar los siguientes valores:
    <ul>
            <li>ease</li>
            <li>linear</li>
            <li>ease-in</li>
            <li>ease-out</li>
            <li>ease-in-out</li>
            <li>cubic-bezier</li>
    </ul>
</li>
</ul>

<h2>Retrasando la transición</h2>
<p>Existe la posibilidad de retrasar la animación durante un intervalo de tiempo. Este efecto lo conseguiremos con el uso de <strong>transition-delay</strong>

<h2>Prefijos y metodo abreviado</h2>
<p>Para que las transiciones funcionen correctamente en los navegadores que las soportan tendremos que utilizar los respectivos prefijos que utilizan cada una para hacer las declaraciones, así por ejemplo para el ejemplo que haré a continuación haré 4 declaraciones. </p>
<pre><code>
-webkit-transition: background-position 10s linear; /* safari */
-moz-transition: background-position 10s linear; /* mozilla firefox */
-o-transition: background-position 10s linear; /* opera */
transition: background-position 10s linear; /* llamada genérica */
</code></pre>
<p>En este caso he utilizado el método abreviado sin tener que hacer una declaración por cada una de las propiedades de la transición.</p>
<span id="more-537"></span>
<h2>Soporte en los navegadores</h2>
<p>Las transiciones son soportadas por los siguientes navegadores &#8211; <a href="http://caniuse.com/#search=css3%20transitions" title="ver soporte">ver soporte</a></p>
<h2>Ejemplo</h2> 
<p>Necesitaréis un navegador con soporte de transiciones para poder visualizar el ejemplo correctamente. En el apartado superior tenéis un enlace a la tabla de soportes. La transición se lanza con el evento hover, para poder verla en funcionamiento tendréis que colocar el ratón sobre el fondo azul.</p>
  <style>
	    .fondo2{height: 517px; background:		                         
								  
								  url(/wp-content/themes/jmocana/images/post/nube-sol.png) no-repeat  10% 20px,
								  url(/wp-content/themes/jmocana/images/post/lluvia.png) no-repeat  18% 100px,
								  url(/wp-content/themes/jmocana/images/post/lluvia.png) no-repeat  87% 92px,	
			    				          url(/wp-content/themes/jmocana/images/post/lluvia.png) no-repeat  30% 5px,
								  url(/wp-content/themes/jmocana/images/post/lluvia.png) no-repeat  50% 140px,
								  url(/wp-content/themes/jmocana/images/post/lluvia.png) no-repeat  18% 120px,
								  url(/wp-content/themes/jmocana/images/post/lluvia.png) no-repeat  45% 60px,
								  url(/wp-content/themes/jmocana/images/post/lluvia.png) no-repeat  70% 120px,
								  url(/wp-content/themes/jmocana/images/post/lluvia.png) no-repeat  100% 60px,
								  url(/wp-content/themes/jmocana/images/post/nube.png) no-repeat  5% 120px,
								  url(/wp-content/themes/jmocana/images/post/nube.png) no-repeat  60% 20px,								 
								  url(/wp-content/themes/jmocana/images/post/nube.png) no-repeat  50% 120px,								  
								  url(/wp-content/themes/jmocana/images/post/nube.png) no-repeat  30% 120px,								  							  
								  url(/wp-content/themes/jmocana/images/post/nube.png) no-repeat  60% 20px,									 
								  url(/wp-content/themes/jmocana/images/post/nube.png) no-repeat  75% 120px,
								  url(/wp-content/themes/jmocana/images/post/arcoiris.png) no-repeat  7% 30px;
    -webkit-transition: background-position 10s linear; 
	-moz-transition: background-position 10s linear;
	-o-transition: background-position 10s linear;
	transition: background-position 10s linear;
	background-color: #87CEFA;
	
}

.fondo2:hover{background-position: 30% 320px, 5% 120px, 40% 220px, 70% 20px,60% 200px,10% 380px,70% 150px,50% 90px,87% 302px,36% 70px,90% 295px,6% 170px,13% 130px,55% 155px,21% 199px,19% 88px}

</style>
<div class="fondo2"></div> 

<p>A continuación os dejo el código que he utilizado</p>
<pre><code>
&lt;head&gt;
  &lt;title&gt;Transciciones&lt;/title&gt;
    
  &lt;style&gt;
	    .fondo2{height: 517px; background:		                         
								  
				  url(img/nube-sol.png) no-repeat  10% 20px,
				  url(img/lluvia.png) no-repeat  18% 100px,
				  url(img/lluvia.png) no-repeat  87% 92px,	
				  url(img/lluvia.png) no-repeat  30% 5px,
				  url(img/lluvia.png) no-repeat  50% 140px,
				  url(img/lluvia.png) no-repeat  18% 120px,
				  url(img/lluvia.png) no-repeat  45% 60px,
				  url(img/lluvia.png) no-repeat  70% 120px,
				  url(img/lluvia.png) no-repeat  100% 60px,
				  url(img/nube.png) no-repeat  5% 120px,
				  url(img/nube.png) no-repeat  60% 20px,								 
				  url(img/nube.png) no-repeat  50% 120px,								  
				  url(img/nube.png) no-repeat  30% 120px,								  							  
				  url(img/nube.png) no-repeat  60% 20px,									 
				  url(img/nube.png) no-repeat  75% 120px,
				  url(img/arcoiris.png) no-repeat  7% 30px;
    -webkit-transition: background-position 10s linear; 
	-moz-transition: background-position 10s linear;
	-o-transition: background-position 10s linear;
	transition: background-position 10s linear;
	
	
}

.fondo2:hover{background-position: 30% 320px, 5% 120px, 40% 220px, 70% 20px,60% 200px,10% 380px,70% 150px,50% 90px,87% 302px,36% 70px,90% 295px,6% 170px,13% 130px,55% 155px,21% 199px,19% 88px}

&lt;/style&gt;

&lt;/head&gt;
&lt;body  id="inicio"&gt;
	&lt;div class="fondo2"&gt;&lt;/div&gt; 
&lt;/body&gt;
</pre></code>


]]></content:encoded>
			<wfw:commentRss>http://www.jmocana.eu/2011/07/28/css3-transiciones/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS3 Multiple Backgrounds</title>
		<link>http://www.jmocana.eu/2011/07/27/css3-multiple-backgrounds/</link>
		<comments>http://www.jmocana.eu/2011/07/27/css3-multiple-backgrounds/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 11:29:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[css 3]]></category>

		<guid isPermaLink="false">http://www.jmocana.eu/?p=504</guid>
		<description><![CDATA[Una de las ventajas más esperadas de CSS3 es la posibilidad de insertar varios fondos en un mismo elemento, esto nos permitirá que nuestro HTML sea mucho más simple y evitaremos problemas de divitis. Como siempre voy a realizar un ejemplo muy sencillo y vamos viendo como utilizarlo. Me he descargado una serie de imágenes [...]]]></description>
			<content:encoded><![CDATA[<p>Una de las ventajas más esperadas de CSS3 es la posibilidad de insertar varios fondos en un mismo elemento, esto nos permitirá que nuestro HTML sea mucho más simple y evitaremos problemas de divitis.</p>
<p>Como siempre voy a realizar un ejemplo muy sencillo y vamos viendo como utilizarlo. Me he descargado una serie de imágenes que representan distintos estados meteorológicos (nubes, sol y nubes, lluvia y un arco iris) y vamos a intentar plasmarlas todas ellas sobre un mismo contenedor.</p>
<h2 class="txt_ejemplo"><a href="http://www.jmocana.eu/2011/07/27/css3-multiple-backgrounds/#fondo1" title="ver ejemplo">VER EJEMPLO</a></h2>
<p>Creo el contenedor sobre al que vamos a asignar las imágenes</p>
<pre><code>&lt;div class="fondo1"&gt;&lt;/div&gt;</pre></code>
<h2>Sintaxis Multiple backgrounds</h2>
<p>A continuación asignamos tantos fondos a nuestro contenedor como queramos</p>
<pre><code>&lt;style&gt;
    .fondo1{height: 517px; background:		                         
		  url(img/nube-sol.png) no-repeat  10% 20px,
		  url(img/lluvia.png) no-repeat  18% 280px,
		  url(img/lluvia.png) no-repeat  27% 192px,	
	    	  url(img/lluvia.png) no-repeat  30% 225px,
		  url(img/lluvia.png) no-repeat  42% 140px,
		  url(img/lluvia.png) no-repeat  48% 320px,
		  url(img/lluvia.png) no-repeat  53% 60px,
		  url(img/lluvia.png) no-repeat  60% 120px,
		  url(img/lluvia.png) no-repeat  64% 20px,
                  url(img/nube.png) no-repeat  69% 120px,
		  url(img/nube.png) no-repeat  75% 360px,								 
		  url(img/nube.png) no-repeat  80% 220px,								  
		  url(img/nube.png) no-repeat  90% 120px,								  							  
		  url(img/nube.png) no-repeat  96% 200px,									 
		  url(img/nube.png) no-repeat  98% 20px,
		  url(img/arcoiris.jpg) no-repeat  100% 300px;
}&lt;/style&gt;</code></pre>
<p>Como podéis ver hemos creado un solo contenedor sin tener que recurrir a una estructura del tipo:</p>
<pre><code><body>
   &lt;div id="fondo1"&gt;
       &lt;div id="fondo2"&gt;
       &lt;/div&gt;
   &lt;/div&gt;
</body></code></pre>
<p>Cuanto antes declaremos un fondo menor z-index tendrá este. Según he colocado yo mis fondos el arco iris será el elemento que tendrá más profundidad, a continuación las nubes, seguido de la lluvia y por último el sol.</p>
<span id="more-504"></span>
<img class="centrar-img" src="/wp-content/themes/jmocana/images/post/zindex.jpg" alt="explicacion del z-index para el ejemplo" />
<p>Finalmente nuestro ejemplo quedaría tal que así</p>

<div id="fondo1"></div> 

<p>Podéis echar un vistazo a la especificación de la W3C aquí: <a href="http://www.w3.org/TR/css3-background/">CSS Backgrounds and Borders Module Level 3</a></p>

<h2>Soporte en los navegadores</h2>
<p>Los navegadores que soportan está propiedad son: <strong>Safari 1.3+, Chrome 2+, Firefox 3.6+, Opera 10.5+ y IE9 Beta</strong>. Una buena costumbre sería asignar un background-color al final de los multiples background como estilo alternativo para los navegadores que no soportan esta propiedad (IE8-), como podéis ver en este caso le he añadido un <em>background-color: #87CEFA;</em> al final del todo para simular el cielo.</p>

]]></content:encoded>
			<wfw:commentRss>http://www.jmocana.eu/2011/07/27/css3-multiple-backgrounds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nuevas llamadas en HTML5</title>
		<link>http://www.jmocana.eu/2011/07/26/nuevas-llamadas-en-html5/</link>
		<comments>http://www.jmocana.eu/2011/07/26/nuevas-llamadas-en-html5/#comments</comments>
		<pubDate>Tue, 26 Jul 2011 09:17:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[maquetador web]]></category>
		<category><![CDATA[html5]]></category>

		<guid isPermaLink="false">http://www.jmocana.eu/?p=495</guid>
		<description><![CDATA[DTD XHTML 1.1 &#60;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.1//EN&#8221; &#8220;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&#8221;&#62; HTML5: &#60;!DOCTYPE html&#62; Codificación XHTML 1.1 &#60;meta http-equiv=&#8221;Content-Type&#8221; content=&#8221;text/html; charset=utf-8&#8243; /&#62; HTML5: &#60;meta charset=utf-8&#62; LINK / SCRIPT XHTML 1.1: &#60;link rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; href=&#8221;style-original.css&#8221;/&#62; &#60;script type=&#8221;text/javascript&#8221; src=&#8221;jquery.js&#8221;&#62;&#60;/script&#62; HTML5: &#60;link rel=stylesheet href=styles.css&#62; &#60;script src=jquery.js&#62;&#60;/script&#62;]]></description>
			<content:encoded><![CDATA[<h2><abbr title="Document Type Definition">DTD</abbr></h2>
<dl>
   <dt>XHTML 1.1</dt> 
   <dd>&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.1//EN&#8221;
&#8220;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&#8221;&gt;</dd> 
    <dt>HTML5:</dt>
    <dd>&lt;!DOCTYPE html&gt;</dd>
</dl>
<h2>Codificación</h2>
<dl>
<dt>XHTML 1.1</dt> 
<dd>&lt;meta http-equiv=&#8221;Content-Type&#8221; content=&#8221;text/html; charset=utf-8&#8243; /&gt;</dd> 
<dt>HTML5:</dt> 
<dd>&lt;meta charset=utf-8&gt;</dd>
</dl>
<h2>LINK / SCRIPT</h2>
<dl> 
    <dt>XHTML 1.1:</dt>
    <dd>&lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; href=&#8221;style-original.css&#8221;/&gt;
&lt;script type=&#8221;text/javascript&#8221; src=&#8221;jquery.js&#8221;&gt;&lt;/script&gt;</dd> 
    <dt>HTML5:</dt> 
    <dd> &lt;link rel=stylesheet href=styles.css&gt;
&lt;script src=jquery.js&gt;&lt;/script&gt;</dd> 
</dl>]]></content:encoded>
			<wfw:commentRss>http://www.jmocana.eu/2011/07/26/nuevas-llamadas-en-html5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Repaso Javascript</title>
		<link>http://www.jmocana.eu/2011/07/22/repaso-javascript/</link>
		<comments>http://www.jmocana.eu/2011/07/22/repaso-javascript/#comments</comments>
		<pubDate>Fri, 22 Jul 2011 10:14:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[maquetador web]]></category>

		<guid isPermaLink="false">http://www.jmocana.eu/?p=491</guid>
		<description><![CDATA[A modo de repaso dejo en este post un listado de entradas relaccionadas con el mundillo javaScript. Programación orientada a objetos en javaScript Manejo de eventos en javaScript Manipulación del DOM con javaScript Javascript: Algunas funciones interesantes Detectar navegador con javaScript getAttribute, setAttribute, textContent, innerText y innerHTML JavaScript &#038; Ajax]]></description>
			<content:encoded><![CDATA[<p>A modo de repaso dejo en este post un listado de entradas relaccionadas con el mundillo javaScript.</p>
<ul>
   <li><a href="http://www.jmocana.eu/2011/05/30/programacion-orientada-a-objetos-javascript/">Programación orientada a objetos en javaScript</a></li>
<li><a href="http://www.jmocana.eu/2011/06/01/manejo-de-eventos-en-javascript/">Manejo de eventos en javaScript</a></li>
<li><a href="http://www.jmocana.eu/2011/06/01/manipulacion-del-dom-con-javascript/">Manipulación del DOM con javaScript</a></li>
<li><a href="http://www.jmocana.eu/2011/06/02/javascript-algunas-funciones-interesantes/">Javascript: Algunas funciones interesantes</a></li>
<li><a href="http://www.jmocana.eu/2011/06/09/detectar-navegador-javascrip/">Detectar navegador con javaScript</a></li>
<li><a href="http://www.jmocana.eu/2011/07/04/getattribute-setattribute-textcontent-innertext-y-innerhtml/">getAttribute, setAttribute, textContent, innerText y innerHTML</a></li>
<li><a href="http://www.jmocana.eu/2011/07/20/javascript-ajax/">JavaScript &#038; Ajax</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.jmocana.eu/2011/07/22/repaso-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript &amp; Ajax</title>
		<link>http://www.jmocana.eu/2011/07/20/javascript-ajax/</link>
		<comments>http://www.jmocana.eu/2011/07/20/javascript-ajax/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 09:51:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[Ajax]]></category>

		<guid isPermaLink="false">http://www.jmocana.eu/?p=460</guid>
		<description><![CDATA[Esta vez voy a intentar explicar como realizaríamos una carga ajax de un archivo xml el cual contiene cierta información que queremos mostrar en nuestra web, para ello realizaré un ejemplo y os iré describiendo detalladamente todos los pasos que voy siguiendo. En nuestro ejemplo tendremos un listado con tres películas, al pinchar sobre cada [...]]]></description>
			<content:encoded><![CDATA[<p>Esta vez voy a intentar explicar como realizaríamos una carga ajax de un archivo xml el cual contiene cierta información que queremos mostrar en nuestra web, para ello realizaré un ejemplo y os iré describiendo detalladamente todos los pasos que voy siguiendo. En nuestro ejemplo tendremos un listado con tres películas, al pinchar sobre cada una de ellas conectaremos con un archivo xml que es donde gurdamos toda la información relativa a las tres pelis, buscaremos la información relativa a la película sobre la que se a clicado y la imprimiremos por pantalla en un formato HTML específico. A continuación os pongo el ejemplo en funcionamiento:</p>

<h2 class="txt_ejemplo"><a href="#ej11">VER EJEMPLO</a></h2>

<link href="/wp-content/themes/jmocana/css/post.css" rel="stylesheet" type="text/css" />
<script src="/wp-content/themes/jmocana/js/funciones.js" type="text/javascript"></script>

<div id="ej11" class="ejemplo estirar">
<ul id="listado-peliculas">
    <li><a id="pelicula1" href="#ej11" rel="nofollow" title="ver información de la película">Un mundo casi perfecto</a></li>
    <li><a id="pelicula2" href="#ej11" rel="nofollow" title="ver información de la película">Amigos</a></li>
    <li><a id="pelicula3" href="#ej11" rel="nofollow" title="ver información de la película">Bad Teacher</a></li>
</ul>
</div>

<a class="e_1" href="/wp-content/themes/jmocana/js/funciones.js">Ver código js completo</a>

<h2 class="paso">Paso 1: Añadir los eventos</h2>

<p>El primer paso que daremos será asignar el evento correspondiente a cada uno de los enlaces disponibles en el listado, en nuestro caso son tres.</p>

<pre><code>function addLoadEvent(func) {
			var oldonload = window.onload;
			if (typeof window.onload != 'function') {
				window.onload = func;
			}
			else {
				window.onload = function() {
					oldonload();
					func();
				}
			}
		}
function anadeEvento(elemento,evento,funcion) {
		 if(document.addEventListener){
			 elemento.addEventListener(evento, funcion, false);  // Resto navegadores
		 }
		 else{
			 elemento.attachEvent("on"+evento,  funcion ); // IE8-
		 }
	  }

//Asignamos eventos
      addLoadEvent(function() { 

	     var listado_pelicula = document.getElementById("listado-peliculas");
    	 var enlaces_pelicula = listado_pelicula.getElementsByTagName("a");
				 
	     for(var i=0; i&lt;enlaces_pelicula.length; i++)  
		     anadeEvento(enlaces_pelicula[i], "click", function(e){cargadorPeliculas(this.getAttribute("id")); e.preventDefault();});	
         });	
</code></pre>

<p>Para evitar el uso de javascript intrusivo hacemos uso de las funciones addLoadEvent y anadeEvento (ya hable de estas funciones en este <a href="http://www.jmocana.eu/2011/06/01/manejo-de-eventos-en-javascript/">post</a>)</p>

<p>Una vez se haya cargado la página capturamos los tres enlaces del listado y los recorremos uno por uno pasándolos como parámetro a la función anadeEvento, junto con el evento que deseamos, en este caso el evento <em>click</em> y junto a la función que queremos que se ejecute al hacer clic sobre uno de nuestros enlaces.</p>

<p>Mucho cuidado con llamar a la función que queremos ejecutar directamente, porque no nos funcionará. Por ejemplo:</p>

<pre><code>
for(var i=0; i&lt;enlaces_pelicula.length; i++)  
		     anadeEvento(enlaces_pelicula[i], "click", cargadorPeliculas(this.getAttribute("id")));	
</code></pre>
<span id="more-460"></span>
<h2 class="paso">Cargar el xml</h2>
<p>Una vez tenemos asignados nuestros eventos lo que tendremos que hacer es realizar la carga de el xml donde se guarda toda la información relativa a las películas, para ello hacemos uso de la función <em>cargadorPeliculas</em></p>

<pre><code>
//Cargamos el XML 
		function cargadorPeliculas(id_pelicula) {


		  var xml_http; 
		  var url_xml = "http://www.jmocana.eu/wp-content/themes/jmocana/xml/peliculas.xml?x=0";
		  
		  try {  xml_http = new ActiveXObject('Msxml2.XMLHTTP'); }
		  
		  catch (e) 
		  {
			  try {   xml_http = new ActiveXObject('Microsoft.XMLHTTP'); } // código para IE6
			  catch (e2) 
			  {
				try {  xml_http = new XMLHttpRequest(); } // código para IE7+, Firefox, Chrome, Opera y Safari
				catch (e3) {  xml_http = false;   }
			  }
		   }
  
		  xml_http.onreadystatechange  = function() { 
			  
			   if(xml_http.readyState  == 4)
			   {
					if(xml_http.status  == 200) 
						{	
						
						 //ok, se ha cargado el XML correctamente						
						 var xml_doc = xml_http.responseXML										
					
						 getInfoPelicula(xml_doc, id_pelicula)
						}
					else 
					  {
						  // error cargando el XML
						  document.getElementById(en_que_div).innerHTML = "Error "+xml_http.status+" cargando XML";				
					  }
			   }
		  }
		  
		  
		 xml_http.open("GET",url_xml,  false); 
		 xml_http.send(null); 	
  }
</code></pre>

<p>La función cargadorPelicula recibirá el parámetro id_pelicula con el identificador de la película que hemos seleccionado</p>
<p>Lo primero que hacemos en esta función es asignar la ruta del xml a una variable.</p>
<p>para poder intercambiar datos con el servidor sin necesidad de recargar la página haremos uso del objeto <strong>XMLHttpRequest</strong>
para los navegadores modernos, mientras que para IE6- se hace uso del objeto <strong>ActiveXObject</strong></p>
<p>Para enviar una petición al servidor utilizamos el método open: <em>open(method,url,async)</em></p>
<ul>
<li><strong>method:</strong> Tipo de petición: GET, POST</li>
<li><strong>url:</strong> Localización del fichero</li>
<li><strong>async:</strong> true (asíncrono), false(síncrono)</li>
</ul>
<p><strong>onreadystatechange</strong> Almacena una función que será llamada automáticamente cada vez que la propiedad readyState cambia.</p>
<p>En nuestro ejemplo creamos el objeto xml_http la propiedad readystate puede tomar los siguientes valores</p>
<ul>
<li><strong>0</strong>: La petición no ha sido inicializada</li>
<li><strong>1</strong>: La conexión está establecida</li>
<li><strong>2</strong>: La petición ha sido recibida</li>
<li><strong>3</strong>: procesando petición</li>
<li><strong>4</strong>: La petición ha finalizado y la respuesta esta lista</li>
</ul> 

<p>Por otro lado la propiedad status puede tomar los siguientes valores</p>
<ul>
<li><strong>200</strong>: OK</li>
<li><strong>400</strong>: Página no encontrada</li>
</ul>
<p>En nuestro ejemplo comprobamos que la petición a finalizado y la respuesta está lista (readystate = 4) y además status = 200 (OK)</p>
<p>Para obtener la respuesta del servidor usamos la propiedad <strong>responseText (devuelve una cadena) o la propiedad <strong>responseXML</strong> (devuelve un XML)</p>
<p>Una vez tenemos toda la información guardada en la variable <em>xml_doc</em> la pasamos a la función <em>getInfoPelicula</em> junto con la variable <em>id_pelicula</em> y nos disponemos entonces a encontrar la posición dentro del XML en la que se encuentra la información solicitada</p>
<h2>Encontrar posición de la información dentro del XML</h2>
<pre><code>
//Buscamos la posición de la película en el XML
		function getInfoPelicula(xml_doc, id_pelicula){
	 
			var peliculas = xml_doc.getElementsByTagName("pelicula");
	   
			for(var i=0; i&lt;peliculas.length; i++){
	
			   if(peliculas[i].getAttribute("id") === id_pelicula){
	 
				  pintarInfoPelicula(xml_doc, i);
				  
			   }
			}				
			
		
		}
</pre></code>
<p>En esta sencilla función lo único que hacemos es recorrer todas las peliculas de nuestro xml hasta hacer coincidir el id del enlace seleccionado y el id de la etiqueta pelicula que está siendo evaluada. Una vez coincidan los dis ids llamaremos a la función pintarInfoPelicula pasandola como parametros xml_doc y la variable i que contiene la posición en la que se encuentra la película solicitada dentro del XML.</p>
<h2>Imprimir información por pantalla</h2>
<pre><code>
//Imprimimos datos
		function pintarInfoPelicula(xml_doc, pos){
			
			
			
		  //Si existe el contenedor "cont_detalles" lo eliminamos
		  if(!(document.getElementById("cont_detalles") == undefined)){
			  var contenedor = document.getElementById("cont_detalles");
			  contenedor.parentNode.removeChild(contenedor);
		  }	  
	
		  //recogemos la información relativa a la pelicula seleccionada	
		  var titulo = xml_doc.getElementsByTagName("titulo")[pos].childNodes[0].nodeValue;
		  var anyo = xml_doc.getElementsByTagName("anyo")[pos].childNodes[0].nodeValue;
		  var distribuidora = xml_doc.getElementsByTagName("distribuidora")[pos].childNodes[0].nodeValue;
		  var duracion = xml_doc.getElementsByTagName("duracion")[pos].childNodes[0].nodeValue;
		  var foto = xml_doc.getElementsByTagName("foto")[pos].childNodes[0].nodeValue;
		  var sinopsis = xml_doc.getElementsByTagName("sinopsis")[pos].childNodes[0].nodeValue;
		  
		  //creamos la cadena de salida		  
		  var txt = "&lt;h2&gt;" + titulo + "&lt;/h2&gt;";
		  txt += "&lt;div class='mod-img'&gt;&lt;img src='/wp-content/themes/jmocana/images/post/" + foto + "' alt='" + titulo +"' /&gt;&lt;/div&gt;";
		  txt += "&lt;div class='mod-txt'&gt;&lt;dl&gt;&lt;dt&gt;A&ntilde;o:&lt;/dt&gt;";
		  txt += "&lt;dd&gt;"+ anyo +"&lt;/dd&gt;";
		  txt += "&lt;dt&gt;Distribuidora:&lt;/dt&gt;";
		  txt += "&lt;dd&gt;"+ distribuidora +"&lt;/dd&gt;";
		  txt += "&lt;dt&gt;Duraci&oacute;n:&lt;/dt&gt;";
		  txt += "&lt;dd&gt;"+ duracion +"&lt;/dd&gt;";
		  txt += "&lt;dt&gt;Sinopsis:&lt;/dt&gt;";
		  txt += "&lt;dd&gt;"+ sinopsis +"&lt;/dd&gt;";
		  txt += "&lt;/dl&gt;&lt;/div&gt;";
		  
		  //Creamos elementos y asignamos cadena
		  var ejemplo = document.getElementById("ej11");
		  var contenedor = document.createElement("div");
		  ejemplo.appendChild(contenedor)
		  contenedor.setAttribute("id", "cont_detalles");
    	  contenedor.innerHTML=txt;
		  	return false;

}

</pre></code>
<p>En esta función seguiremos los siguientes pasos:</p>
<ol>
<li>Comprobamos si existe el contenedor <em>cont_detalles</em>. Si existe lo eliminamos para que no se anide la información dentro de la página</li>
<li>Almacenamos los datos en variables ej: <pre><code>var titulo = xml_doc.getElementsByTagName("titulo")[pos].childNodes[0].nodeValue;</code></pre></li>
<li>Creamos la cadena de salida y la almacenamos en la variable <em>txt</em></li>
<li>Finalmente creamos un contenedor y lo añadimos al DOM junto con la salida almacenada en la variable <em>txt</em></li>
</ol>
 

]]></content:encoded>
			<wfw:commentRss>http://www.jmocana.eu/2011/07/20/javascript-ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>getAttribute, setAttribute, textContent, innerText y innerHTML</title>
		<link>http://www.jmocana.eu/2011/07/04/getattribute-setattribute-textcontent-innertext-y-innerhtml/</link>
		<comments>http://www.jmocana.eu/2011/07/04/getattribute-setattribute-textcontent-innertext-y-innerhtml/#comments</comments>
		<pubDate>Mon, 04 Jul 2011 11:50:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[maquetador web]]></category>

		<guid isPermaLink="false">http://www.jmocana.eu/?p=451</guid>
		<description><![CDATA[getAttribute Devuelve un atributo determinado relativo a un elemento.Ejemplo (Nos devolvería el identificador del elemento div): document.getElementById("div").getAttribute("id"); Con jquery podríamos conseguir lo mismo gracias al método attr(). Ejemplo: $("div").attr("id"); setAttribute Fija un determinado valor en un elemento determinado.Ejemplo: (Fijaríamos el valor 'mi_id' en el atributo id del elemento/s div) document.getElementById("div").setAttribute("id", "mi_id"); Podríamos conseguir lo mismo [...]]]></description>
			<content:encoded><![CDATA[<h3>getAttribute</h3>
<p>Devuelve un atributo determinado relativo a un elemento.<br />Ejemplo (Nos devolvería el identificador del elemento div):
<pre><code>document.getElementById("div").getAttribute("id");</code></pre> </p>
<p>Con jquery podríamos conseguir lo mismo gracias al método attr(). <br />
Ejemplo:
<code><pre> $("div").attr("id");</code></pre></p>
<h3>setAttribute</h3>
<p>Fija un determinado valor en un elemento determinado.<br />Ejemplo: (Fijaríamos el valor 'mi_id' en el atributo id del elemento/s div)
<pre><code>document.getElementById("div").setAttribute("id", "mi_id");</code></pre> </p>
<p>Podríamos conseguir lo mismo con jquery de la siguiente forma:<br />
<pre><code>$("div").attr("id", "mi_id");</code></pre></p>
<h3>textContent Vs innerText</h3>
<p>Estos dos métodos nos permiten conseguir lo mismo, obtener el texto englobado por un elemento en concreto con la diferencia de que cada uno funcionará o no dependiendo del navegador en el que se ejecuten. Así por ejemplo textContent funcionará en Firefox pero no en IE. Por el contrario innerText trabajará correctamente en IE ero no en firefox. Una forma válida de conseguir nuestro propósito con éxito en todos los navegadores sería la siguiente:</p>
<pre><code>var hasInnerText =
(document.getElementsByTagName("body")[0].innerText != undefined) ? true : false;
var elem = document.getElementById('id');
var elem2 = document.getElementById ('id2');

if(!hasInnerText){
    elem.textContent = value;
    elem2.textContent = value;
} else{
    elem.innerText = value;
    elem2.innerText = value;
}</code></pre>

<h3>innerHTML</h3>
<p>Una forma más sencilla de obtener el texto de un elemento sin tener que recurrir a condicionales con los cuales diferenciar entre navegadores sería mediante el método innerHTML. Mediante este método recuperaremos tanto el texto como el etiquetado HTML englobado por un elemento en concreto.<br />
Ejemplo: (Imaginemos que queremos fijar un texto en un contenedor cuyo id es "mi_id"): 
<pre><code>document.getElementById('mi_id').innerHTML = "&lt;p&gt;Nuevo texto insertado en mi_id&lt;/p&gt;";</code></pre></p>]]></content:encoded>
			<wfw:commentRss>http://www.jmocana.eu/2011/07/04/getattribute-setattribute-textcontent-innertext-y-innerhtml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Detectar navegador con javaScript</title>
		<link>http://www.jmocana.eu/2011/06/09/detectar-navegador-javascrip/</link>
		<comments>http://www.jmocana.eu/2011/06/09/detectar-navegador-javascrip/#comments</comments>
		<pubDate>Thu, 09 Jun 2011 16:35:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.jmocana.eu/?p=440</guid>
		<description><![CDATA[Debido al distinto comportamiento de los navegadores web muchas veces se hace imprescindible detectar el nombre del mismo así como la versión que se está utilizando para realizar una programación determinada. Gracias al objeto navigator de javaScript podemos detectar tanto el nombre como la versión de navegador que se está utilizando.El objeto navigator tiene varias [...]]]></description>
			<content:encoded><![CDATA[<script type="text/javascript" src="/wp-content/themes/jmocana/js/javascript/navigator/navigator.js"></script>
<p>Debido al distinto comportamiento de los navegadores web muchas veces se hace imprescindible detectar el nombre del mismo así como la versión que se está utilizando para realizar una programación determinada.</p>
<p>Gracias al <strong>objeto navigator</strong> de javaScript podemos <strong>detectar tanto el nombre como la versión de navegador</strong> que se está utilizando.<br />El objeto navigator tiene varias propiedades aunque quizás la más interesante sea <strong>userAgent</strong>. Mediante el uso de expresiones regulares aplicadas sobre esta propiedad podremos detectar la información que necesitamos.</p>
<p>Tenéis información detallada sobre el objeto navigator en la siguiente dirección:</p>
<a class="enlace-destacado" href="http://www.javascriptkit.com/javatutors/navigator.shtml" title="ver más información"><strong>Ver información detallada en javascriptkit.com</strong></a>
<p>Estos son algunos de los valores de las propiedades del objeto navigator relativo a tu navegador:</p>
<ul id="list-navigator">
    <li><strong>appCodeName: </strong></li>
    <li><strong>appName: </strong></li>
    <li><strong>appVersion: </strong></li>
    <li><strong>userAgent: </strong></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.jmocana.eu/2011/06/09/detectar-navegador-javascrip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript: Algunas funciones interesantes</title>
		<link>http://www.jmocana.eu/2011/06/02/javascript-algunas-funciones-interesantes/</link>
		<comments>http://www.jmocana.eu/2011/06/02/javascript-algunas-funciones-interesantes/#comments</comments>
		<pubDate>Thu, 02 Jun 2011 10:09:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[maquetador web]]></category>

		<guid isPermaLink="false">http://www.jmocana.eu/?p=423</guid>
		<description><![CDATA[Navegando un poco por la red me he topado con algunas funciones de javaScript bastante interesantes y que considero necesario tenerlas bien a mano por lo que las guardo en este post por si hay que rescatarlas. toggle() Ocultará o mostrara elementos dependiendo del estado anterior. function toggle(obj) { var el = document.getElementById(obj); if ( [...]]]></description>
			<content:encoded><![CDATA[<p>Navegando un poco por la red me he topado con algunas funciones de javaScript bastante interesantes y que considero necesario tenerlas bien a mano por lo que las guardo en este post por si hay que rescatarlas.</p>

<h2>toggle()</h2>
<p>Ocultará o mostrara elementos dependiendo del estado anterior.</p>
<pre><code>function toggle(obj) {
	var el = document.getElementById(obj);
	if ( el.style.display != 'none' ) {
		el.style.display = 'none';
	}
	else {
		el.style.display = '';
	}
}</code></pre>

<p>Os dejo un ejemplo sencillo.</p>

<script type="text/javascript" src="/wp-content/themes/jmocana/js/javascript/toggle/toggle.js?update=201106021251"></script>
<div class="ejemplo">
    <p id="parrafo1">Hola mundo</p>
    <a id="enlace_toggle" class="e_ejemplo" href="#">toogle</a>
</div>

<p>El código al completo del ejemplo sería:</p>

<pre><code>function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	}
	else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

addLoadEvent(function() { 
					  
	function anadeEvento(elemento,evento,funcion) {
	 if(document.addEventListener){
         elemento.addEventListener(evento, funcion, false);  // Resto navegadores
     }
     else{
         elemento.attachEvent("on"+evento,  funcion ); // IE8-
     }
  }				  
					  
  function toggle(obj) {
      var el = document.getElementById(obj);
	  if ( el.style.display != 'none' ) {
		  el.style.display = 'none';
	  }
	  else {
		  el.style.display = '';
	  }
  }
  
  
  
  var enlace = document.getElementById("enlace_toggle");
  obj = "parrafo1";
  
  anadeEvento(enlace, "click", function(){toggle(obj)})
  
});</code></pre>

<span id="more-423"></span>

<h2>insertAfter</h2>
<p>Creada por <a href="http://adactio.com/">Jeremy Keith</a>, nos permite insertar un nodo después de otro elemento padre.</p>
<pre><code>function insertAfter(parent, node, referenceNode) {
	parent.insertBefore(node, referenceNode.nextSibling);
}</code></pre>

<h2>inArray()</h2>
<p>Busca un valor dentro de una array.</p>
<pre><code>Array.prototype.inArray = function (value) {
	var i;
	for (i=0; i < this.length; i++) {
		if (this[i] === value) {
			return true;
		}
	}
	return false;
};</code></pre>


]]></content:encoded>
			<wfw:commentRss>http://www.jmocana.eu/2011/06/02/javascript-algunas-funciones-interesantes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Manipulación del DOM con javaScript</title>
		<link>http://www.jmocana.eu/2011/06/01/manipulacion-del-dom-con-javascript/</link>
		<comments>http://www.jmocana.eu/2011/06/01/manipulacion-del-dom-con-javascript/#comments</comments>
		<pubDate>Wed, 01 Jun 2011 15:32:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.jmocana.eu/?p=417</guid>
		<description><![CDATA[A la hora de manipular el DOM tenemos el siguiente listado de expresiones document.getElementById(id_elemento);: Permite acceder al primer elemento con id &#8220;id_elemento&#8221; document.getElementsByTagName(elemento): Devuelve una lista de nodos con todos los elementos con el nombre &#8220;elemento&#8221;. En caso de querer hacer referencia a un elemento específico, por ejemplo el primero, podríamos hacer uso de la [...]]]></description>
			<content:encoded><![CDATA[<p>A la hora de manipular el DOM tenemos el siguiente listado de expresiones</p>
<ul>
   <li><strong>document.getElementById(id_elemento);</strong>: Permite acceder al primer elemento con id &#8220;id_elemento&#8221;</li>
   <li><strong>document.getElementsByTagName(elemento)</strong>: Devuelve una lista de nodos con todos los elementos con el nombre &#8220;elemento&#8221;.<br /> En caso de querer hacer referencia a un elemento específico, por ejemplo el primero, podríamos hacer uso de la expresión: <strong>document.getElementsByTagName(elemento)[0]</strong></li>
   <li><strong>document.createElement(elemento);</strong>: Crea un nuevo elemento en el <abbr title="Document Object Model">DOM</abbr></li>
   <li><strong>document.createTextNode(&#8220;texto&#8221;);</strong>: Genera un nuevo nodo de texto.</li>
   <li><strong>appendChild</strong>: Añade un nodo hijo a un padre concreto. Por ejemplo:<br />
  <pre><code>var nuevoEnlace = document.createElement("a");
var nodoTexto = document.createTextNode("Esto es un enlace");
nuevoEnlace.appendChild(nodoTexto);</code></pre>
</li>
   <li><strong>elementoPadre.insertBefore(nuevoElemento, elementoReferenciado);</strong>: Inserta un elemento justo antes de otro que le especifiquemos.</li>
   <li><strong>innerHTML</strong>: Permite introducir HTML dentro de una etiqueta. </li>
   <li><strong>parentNode</strong>: Selecciona el nodo padre de un nodo en concreto.</li>
   <li><strong>removeChild</strong>: Elimina un nodo hijo</li>
   <li><strong>getAttribute(propiedad);</strong>: Devuelve el valor de una propiedad que le pasamos por parametro</li>
   <li><strong>ancla.style.display</strong>: Devuelve un estilo concreto de un elemento</li>
   <li><strong>document.getElementsByClassName(names);</strong>: Retorna un conjunto de elementos los cuales poseen la clase &#8220;names&#8221;.</li>
</ul>

<p>getElementsByClassName pertenece a la nueva especificación de HTML5 y tan solo algunos navegadores lo soportan, por ejemplo Internet Explorer en todas sus versiones inferiores a la 9.</p>

<p>Hasta que todos los navegadores soporten getElementsByClassName podremos hacer uso de la siguiente función:</p>

<pre><code>function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp('(^|\\s)'+searchClass+'(\\s|$)');
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}</code></pre>
<p>Podemos encontrar información mas detallada en la siguiente página: <a href="http://www.maestrosdelweb.com/editorial/dom/">Introducción a la manipulación del DOM mediante Javascript (Maestros del web)</a>
]]></content:encoded>
			<wfw:commentRss>http://www.jmocana.eu/2011/06/01/manipulacion-del-dom-con-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

