<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4064907788923748518</id><updated>2024-09-08T06:16:45.462-07:00</updated><title type='text'>Scripting Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://turboquique.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4064907788923748518/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://turboquique.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>ScriptBlog</name><uri>http://www.blogger.com/profile/12797976226116951700</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>1</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4064907788923748518.post-3528588736698050766</id><published>2010-03-03T13:49:00.000-08:00</published><updated>2010-03-14T10:50:08.667-07:00</updated><title type='text'>Propiedad innerHTML en un select box</title><content type='html'>&lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;strong&gt;Artículo dirigido a programadores web y desarrolladores :&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;br /&gt;
En alguna ocasión, durante el desarrollo de sus páginas web o aplicaciones, se habrán topado con la necesidad de agregar o eliminar alguna opción de las que se despliegan en una &quot;select box&quot;, teniendo para ello que crear algún código que use las funciones &quot;add&quot; o &quot;remove&quot;, digamos algo parecido a esto.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;table cellpadding=&quot;2&quot; style=&quot;border-bottom: black 1px solid; border-left: black 1px solid; border-right: black 1px solid; border-top: black 1px solid; position: relative; top: 0px; width: 661px;&quot;&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;td width=&quot;265&quot;&gt;&lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;strong&gt;HTML&lt;/strong&gt;&lt;/span&gt;&lt;/td&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;td&gt;&lt;span style=&quot;font-family: arial; font-size: 85%;&quot;&gt;&lt;strong&gt;Javascript&lt;/strong&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot;&gt;&lt;span style=&quot;border-right: black 1px solid; color: #660000; font-family: arial;&quot;&gt;&amp;lt;select id=&quot;estados&quot; name=&quot;estados&quot;&amp;gt;&lt;br /&gt;
&amp;lt;option value=&quot;5&quot;&amp;gt;Coahuila&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=&quot;19&quot;&amp;gt;Nuevo León&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=&quot;28&quot;&amp;gt;Tamaulipas&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;/select&amp;gt;&lt;/span&gt;&lt;/td&gt;&lt;td valign=&quot;top&quot;&gt;&lt;strong&gt;Para agregar :&lt;/strong&gt;&lt;br /&gt;
&lt;span style=&quot;color: #006600;&quot;&gt;opt = document.createElement(&quot;OPTION&quot;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #006600;&quot;&gt;document.getElementById(&quot;estados&quot;).add(opt, 0);&lt;br /&gt;
opt.innerText = &quot;Aguascalientes&quot;;&lt;br /&gt;
opt.value = 1;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: black;&quot;&gt;Donde el segundo parámetro de la función add es la posición donde se desea agregar el elemento &quot;OPTION&quot;.&lt;/span&gt;&lt;br /&gt;
Tambien existe la alternativa de utilizar funciones de DOM, quedando así :&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #006600;&quot;&gt;opt = document.createElement(&quot;OPTION&quot;);&lt;br /&gt;
document.getElementById(&quot;estados&quot;).appendChild(opt);&lt;br /&gt;
opt.innerText = &quot;Aguascalientes&quot;;&lt;br /&gt;
opt.value = 1;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Para eliminar&lt;/strong&gt; basta con:&lt;br /&gt;
&lt;span style=&quot;color: #006600;&quot;&gt;document.getElementById(&quot;estados&quot;).remove(0);&lt;/span&gt;Donde &quot;0&quot; es el índice del elemento que se desea eliminar.&lt;/td&gt;&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;/tr&gt;
&lt;/&gt;&lt;/&gt;&lt;/&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pero si quisiéramos eliminar todas las opciones del select en un solo paso podríamos utilizar :&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #006600;&quot;&gt;document.getElementById(&quot;estados&quot;).innerHTML = &quot;&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
lo cual es correcto y funciona en todos los exploradores (IE, Safari, Firefox, Chrome, Opera)&lt;br /&gt;
&lt;br /&gt;
Sin embargo al querer cambiar todas las opciones del select por ungrupo nuevo, no todo es como quisiéramos.&lt;br /&gt;
Primero necesitamos tener una variable string con el dato de las opciones :&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #006600;&quot;&gt;var opciones = &amp;lt;option value=&quot;xxx&quot;&amp;gt;xxx&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;yyy&quot;&amp;gt;yyy&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;zzz&quot;&amp;gt;zzz&amp;lt;/option&amp;gt;;&lt;/span&gt;&lt;br /&gt;
Despues aplicamos este valor a la propiedad innerHTML del select.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #006600;&quot;&gt;document.getElementById(&quot;estados&quot;).innerHTML = opciones;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
solo que esto no va a funcionar en Internet Explorer, en los demás navegadores no hay problema.&lt;br /&gt;
&lt;br /&gt;
Para el caso exclusivo de Internet Explorer yo he utilizado alguna de las dos siguientes alternativas :&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;strong&gt;Alternativa elegante&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;strong&gt;&lt;span style=&quot;font-family: Arial;&quot;&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;Esto o algo parecido se recomienda en la mayoría de los foros y blogs&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #006600;&quot;&gt;&lt;span style=&quot;font-family: Arial;&quot;&gt;var arraytextos = new Array();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;var arrayvalores = new Array();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;arraytextos[0] = &quot;xxx&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;arraytevalores[0] = &quot;xxx&quot;; &lt;span style=&quot;color: black;&quot;&gt;// o cualquier valor que se desee asignar&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;arraytextos[1]= &quot;yyy&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;arrayvalores[1] = &quot;yyy&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;arraytextos[2] = &quot;zzz&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;arrayvalores[2] = &quot;zzz&quot;;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial;&quot;&gt;&lt;span style=&quot;color: #006600;&quot;&gt;for(i=0; i&amp;gt;arraytextos.lenght; i++) {&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;opt = document.createElement(&quot;OPTION&quot;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;document.getElementById(&quot;estados&quot;).add(opt, 0);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;opt.innerText = arraytextos[i];&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;opt.value = arrayvalores[i];&lt;/span&gt; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;y listo, opciones agregadas al select box.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;&lt;strong&gt;Alternativa nueva&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;strong&gt;&lt;span style=&quot;font-family: Arial;&quot;&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;span style=&quot;color: #006600;&quot;&gt;var opciones = &amp;lt;option value=&quot;xxx&quot;&amp;gt;xxx&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;yyy&quot;&amp;gt;yyy&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;zzz&quot;&amp;gt;zzz&amp;lt;/option&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;opciones = &quot;x&quot; + opciones; &lt;span style=&quot;color: black;&quot;&gt;//Muy importante, más adelante explico esto.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;xselect = document.getElementById(&quot;estados&quot;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;xparent = xselect.parentElement;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;xselect.innerHTML = &quot;&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;xselect.innerHTML = opciones;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;xparent.innerHTML = xselect.outerHTML;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;y listo, esto también funciona en los demás exploradores.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: arial;&quot;&gt;Naturalmente es necesario que el contenedor (div, span, td, etc.) del select box solo tenga este elemento en su interior, de lo contrario se eliminará lo demás.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;Esta alternativa la recomiendo sobre todo cuando ya generaste la lista de opciones desde PHP ó algún otro lenguaje de servidor y tienes que regresarlo al cliente como un string de &quot;OPTION&quot; grandote (&amp;lt;option value=&quot;xxx&quot;&amp;gt;xxx&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;yyy&quot;&amp;gt;yyy&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;zzz&quot;&amp;gt;zzz&amp;lt;/option&amp;gt;), sobre todo usando AJAX, evitando así tener que separar el string resultante en un array de opciones.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;Ahora explico porque la &quot;x&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;Sucede que dentro de los errores que tiene el elemento &quot;select&quot; en Internet Explorer, al enviar la variable &quot;opciones&quot; a la propiedad innerHTML del select box, por alguna razón que desconozco, esta elimina el primer elemento &quot;option&quot;, se podría pensar que se agrega un elemento de más y listo, pero este elemento de más no sería eliminado en los otros exploradores, por lo tanto al agregar un texto sin formato como la &quot;x&quot;, esta es eliminada en Internet Explorer e ignorada en el resto de los exploradores (Safari, Firefox, Chrome, Opera).&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;Bye.&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://turboquique.blogspot.com/feeds/3528588736698050766/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4064907788923748518/3528588736698050766' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4064907788923748518/posts/default/3528588736698050766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4064907788923748518/posts/default/3528588736698050766'/><link rel='alternate' type='text/html' href='http://turboquique.blogspot.com/2010/03/funcion-innerhtml-en-un-select-box.html' title='Propiedad innerHTML en un select box'/><author><name>ScriptBlog</name><uri>http://www.blogger.com/profile/12797976226116951700</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>