Pregunta

Estoy teniendo un problema con GetElementByID de la siguiente manera:

<script type="text/javascript">
<!--
function show_links(locale) {

        var box = document.getElementById(locale);

        if(box.style.display == "none") { 
            box.style.display = "inline";
        } 
         else { 

            box.style.display = "none";
        }

    }
    //-->
</script>

<div class="link"><strong><a href="javascript:show_links(test);">Test</a></strong></div>
<div class="test"> Blah blah blah. This content comes and goes. </div>

Así que no tiene el código. Cuando pulso en el enlace "Test", se debe ocultar el "bla, bla, bla texto". Al hacer clic de nuevo, se debe mostrar. Sin embargo, tengo un problema extraño. Procesé el código a través de un depurador, y parece que la var box = document.getElementById(locale); línea no está funcionando correctamente. box se establece en null. ¿Alguien puede teorizar por qué?

¿Fue útil?

Solución

Usted tiene varios problemas. Primeras los críticos:

  1. El valor que está de paso a la función show_links es la test variable. Esto es igual a undefined por lo que no va a coincidir con nada.
  2. El elemento que está tratando de encontrar por su id no tiene un id. Tiene solamente una clase.

Es necesario dar al elemento que está tratando de coincidir con un ID y pasar un cadena en lugar de un valor indefinido.

A continuación, las cuestiones de menor importancia.

  1. Usted está probando la propiedad de estilo de visualización en línea, pero no está configurando por defecto. Como regla general, es mejor hacer girar la propiedad className, y tienen sus estilos definidos en una hoja de estilo.
  2. Usted está utilizando un javascript pseudo-URI en lugar de progresiva mejora .
  3. comentarios envueltos alrededor del interior de la secuencia de comandos . En mejor , éstos no tienen sentido.
  4. Usted está haciendo girar un div entre inline y none, pero el valor de visualización por defecto para un div es block. Hay razones para tener un div de estilo en línea, pero la mayoría de las veces usted debe utilizar otro elemento.

Otros consejos

javascript:show_links(test);

test es un identificador desconocido. ¿Dónde lo definiría? Quiso decir para alimentar una cadena?

<div class="test"> Blah blah blah. This content comes and goes. </div>

No hay ningún elemento con un id de test en esta línea. Utilice el atributo id adecuada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top