¿Podrías explicar un poco el código ese? Es que no lo entiendo muy bien...
Una de las primeras líneas es:
var selTemp = document.createElement("micoxselect")
que crea un elemento con una etiqueta que no existe, no creo que sea recomendable. Luego le pones un id y hallas su referencia con getElementById, pero la referencia ya la tenías cuando creaste el elemento con esa línea que he copiado...
Después le asignas el display="none" para que no se dibuje en la página. Entonces, ¿Porqué selTemp no es un <select> normal y estandar?
Con esta línea:
innerHTML =innerHTML.replace(/<option/g,"<span").replace(/</option/g,"</span");
conviertes todo lo que sea <option> a <span>, pero parseando el HTML, lo cual no tiene sentido existiendo DOM, pudiendo trabajar con los objetos directamente sin tener que parsear nada...
Y después sí que utilizas DOM para pasar el HTML adjuntado a selTemp al objeto en cuestión...
No entiendo muy bien la lógica de ese código... eso de parsear el HTML pasando todos los <option> a <span> para luego hacer un DOM... no sé no sé.
¿Por qué no introduces las opciones en un array y luego las colocas en
objeto a la manera tradicional?: (como en las FAQs)
Código PHP:
function addOpt(oCntrl, iPos, sTxt, sVal){
var selOpcion=new Option(sTxt, sVal);
eval(oCntrl.options[iPos]=selOpcion);
}
¿De esa manera se te ralentiza? Creo que es más limpio y más rápido.. habría que probarlo.
Cuéntame qué tal así.