Ayuda Javascript! Problema que no consigo resolver

Hola!

Me he pasado todo el fin de semana intentando resolver un pequeño problema JavaScript que me trae de cabeza, y no consigo dar con el fallo...

Lo que tengo es, un conjunto de imagenes, y, al clickar en una, su borde cambia de color. Si hay otra resaltada, se vuelve a poner su borde en su color original. Es decir, como un selector de imagenes donde solo se puede elegir una.

Hasta ahora, tengo hecho esto :


<script type="text/javascript">
var element = new Array ();
function select(xx,opcion)
  {
      if ( element[opcion] ) {
             element[opcion].setAttribute("class", "option-value-unselect");
      }
      element[opcion] = document.getElementById(xx);
      document.getElementById(xx).setAttribute("class", "option-value-select");
  }


El parametro XX es el ID de la imagen que se hace click. El valor opcion es numerico (1,2,3) para permitir que haya varios selectores.

Esto, que funciona perfectamente en firefox y chrome... por supuesto no funciona en IE....

Haga lo que haga, document.getElementById(xx) devuelve null. En IE8 y 9 creo que si que va, pero no asi en 7.

He leido que, el metodo getElementById tiene algunas peculiaridades en IE7, pero ninguna parece ajustarse a mi problema.

¿Alguna idea?

Gracias!

</script>
A ver si hay suerte...

http://remysharp.com/2007/02/10/ie-7-br ... ementbyid/

If you have an element whose ID is 'container', and a form whose name is 'container' but ID is anything else, say: 'formContainer', running the following:

var elm = document.getElementById('container')
elm.style.display = 'none';

In IE only, the form will disappear. Correctly in all other browsers, the element whose ID is container will disappear.


Resumiendo, fíjate si tienes algún elemento cuyo atributo 'name' sea el mismo que el id que estás buscando.

Si no es eso, yo intentaría acceder a las imágenes por 'name' en vez de por 'id', utilizando document.forms[0].name.

Es cuestión de ir probando.

Un saludo.
1 respuesta