Foros del Web » Creando para Internet » HTML »

Problema con input + onlick + div

Estas en el tema de Problema con input + onlick + div en el foro de HTML en Foros del Web. Hola estoy aprendiendo HTML y estoy haciendo un botón que al clicarlo te enseña un texto, y al volver a clicarle te lo oculta, pero ...
  #1 (permalink)  
Antiguo 23/11/2009, 06:40
 
Fecha de Ingreso: octubre-2008
Mensajes: 46
Antigüedad: 15 años, 6 meses
Puntos: 0
Problema con input + onlick + div

Hola estoy aprendiendo HTML y estoy haciendo un botón que al clicarlo te enseña un texto, y al volver a clicarle te lo oculta, pero tengo un problema, al poner dos botones siempre me muestra el primero, entonces le cambio de nombre a los DIV para que haga un display del que yo quiero y no me sirve, tengo:
<div style="display: none;">
Si cambio a otro "none" por otr no sirve, se queda mostrado el texto.

Concretamente uso este código, que siempre me muestra el primer "Texto 1"
Código PHP:
<div>
    <
input
        value
="Texto 1"
        
onclick="if (this.parentNode.getElementsByTagName ('div') [0].style.display != '') {
                     this.parentNode.getElementsByTagName ('div') [0].style.display = '';
                     this.value = 'Texto 1 (Ocultar)';
                 } else {
                     this.parentNode.getElementsByTagName ('div') [0].style.display = 'none';
                     this.value = 'Texto 1';
                 }"
        
type="button"
    
/>
    <
div style="display: none;">
        <
ul>
            <
li type="a">Texto 1</li>
        </
ul>
    </
div>
    <
br><br>
    <
input
        value
="Texto 2"
        
onclick="if (this.parentNode.getElementsByTagName ('div') [0].style.display != '') {
                     this.parentNode.getElementsByTagName ('div') [0].style.display = '';
                     this.value = 'Texto 2(Ocultar)';
                 } else {
                     this.parentNode.getElementsByTagName ('div') [0].style.display = 'none';
                     this.value = 'Texto 2';
                 }"
        
type="button"
    
/>
    <
div style="display: none;">
        <
ul>
            <
li type="a">Texto 2</li>
        </
ul>
    </
div>
</
div
Y luego este, que aparecen ya mostrados sin estar oculto y ni siquiera al clicar los oculta ni nada, no sucede nada al hacer onclick, no conozco muy bien la sintaxis de lo que estoy haciendo, me he documentado en internet y es lo que he podido hacer.
Código PHP:
div>
    <
input
        value
="Texto 1"
        
onclick="if (this.parentNode.getElementsByTagName ('div') [0].style.display != '') {
                     this.parentNode.getElementsByTagName ('div') [0].style.display = '';
                     this.value = 'Texto 1 (Ocultar)';
                 } else {
                     this.parentNode.getElementsByTagName ('div') [0].style.display = 'none1';
                     this.value = 'Texto 1';
                 }"
        
type="button"
    
/>
    <
div style="display: none1;">
        <
ul>
            <
li type="a">Texto 1</li>
        </
ul>
    </
div>
    <
br><br>
    <
input
        value
="Texto 2"
        
onclick="if (this.parentNode.getElementsByTagName ('div') [0].style.display != '') {
                     this.parentNode.getElementsByTagName ('div') [0].style.display = '';
                     this.value = 'Texto 2(Ocultar)';
                 } else {
                     this.parentNode.getElementsByTagName ('div') [0].style.display = 'none2';
                     this.value = 'Texto 2';
                 }"
        
type="button"
    
/>
    <
div style="display: none2;">
        <
ul>
            <
li type="a">Texto 2</li>
        </
ul>
    </
div>
</
div
Gracias por la ayuda.
  #2 (permalink)  
Antiguo 23/11/2009, 07:27
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Problema con input + onlick + div

te oriento segun lo que tienes. no te funciona como esperas porque siempre estas haciendo referencia al mismo elemento, especificamente en cada ocurrencia de getElementsByTagName ('div') [0]. el 0 indica el primer elemento de la coleccion. en el segundo input tienes que escribir 1 para hacer referencia al segundo DIV.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 23/11/2009, 07:56
 
Fecha de Ingreso: octubre-2008
Mensajes: 46
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Problema con input + onlick + div

Entiendo, claro porque esa función almacena los elementos que estén dentro del DIV en el array... No me había dado cuenta de eso puesto que está dentro del mismo DIV principal.

Gracias lo probaré =]

EDIT: Me gustaría optimizar esto un poco porque tengo que hacer 14 elementos con textos muy grandes y quisiera hacer un bucle FOR para ir creando los botones en vez de ir creando uno a uno, y así creo sólo los 14 elementos con el texto y no texto e imput, ¿sería posible?

EDIT2: Si necesita obligatoriamente PHP o un cambio drástico con javascript o algo díganmelo que lo hago yo aparte, sólo quería si se puede hacer simple y óptimo con HTML.

EDIT3: Cerrad el post gracias por la ayuda.

Última edición por rokimoki; 23/11/2009 a las 10:11
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:00.