Foros del Web » Programando para Internet » Javascript »

Bucle

Estas en el tema de Bucle en el foro de Javascript en Foros del Web. Buenas, una duda, tengo una lista ul @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código HTML: Ver original < ul id = "lista" > < li > item 1 < ...
  #1 (permalink)  
Antiguo 15/08/2012, 11:34
 
Fecha de Ingreso: mayo-2011
Mensajes: 171
Antigüedad: 13 años, 7 meses
Puntos: 32
Pregunta Bucle

Buenas, una duda, tengo una lista ul
Código HTML:
Ver original
  1. <ul id="lista">
  2. <li>item 1</li>
  3. <li>item 2</li>
  4. <li>item 3</li>
  5. <li>item 4</li>
  6. <li>item 5</li>
  7. </ul>
el dilema es poder darles eventos a los item por javascript:

intente con un for:
Código Javascript:
Ver original
  1. elm = document.querySelectorAll('#lista > li');
  2.     for(e=0;e<elm.length-1;e++){
  3.       elm[e].addEventListener('click', function(){
  4.           console.log('click en '+elm[e].innerHTML);
  5.       }, false);
  6.     }
y la respuesta es simpre para el ultimo item (tanto en este no funciona).


como hacer algo asi.
  #2 (permalink)  
Antiguo 15/08/2012, 11:40
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 6 meses
Puntos: 220
Respuesta: Bucle

Cita:
Iniciado por dukeblass Ver Mensaje
Buenas, una duda, tengo una lista ul
Código HTML:
Ver original
  1. <ul id="lista">
  2. <li>item 1</li>
  3. <li>item 2</li>
  4. <li>item 3</li>
  5. <li>item 4</li>
  6. <li>item 5</li>
  7. </ul>
el dilema es poder darles eventos a los item por javascript:

intente con un for:
Código Javascript:
Ver original
  1. elm = document.querySelectorAll('#lista > li');
  2.     for(e=0;e<elm.length-1;e++){
  3.       elm[e].addEventListener('click', function(){
  4.           console.log('click en '+elm[e].innerHTML);
  5.       }, false);
  6.     }
y la respuesta es simpre para el ultimo item (tanto en este no funciona).


como hacer algo asi.
Solo cambia tu JS por esto

Código Javascript:
Ver original
  1. var elm = document.querySelectorAll('#lista > li');
  2. for(e=0;e<elm.length;e++){
  3.    elm[e].addEventListener('click', function(){
  4.           console.log('click en '+this.innerHTML);
  5.    }, false);
  6. };
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #3 (permalink)  
Antiguo 15/08/2012, 11:48
 
Fecha de Ingreso: mayo-2011
Mensajes: 171
Antigüedad: 13 años, 7 meses
Puntos: 32
Respuesta: Bucle

Gracias, Dradi7, me faltaba ese this, ya había echo algo así pero no me acordaba de como.. XD
  #4 (permalink)  
Antiguo 15/08/2012, 13:16
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 12 años, 6 meses
Puntos: 127
Respuesta: Bucle

El soporte básico para querySelectorAll es para las versiones mínimas:

Chrome 1
Firefox 3.5 (1.9.1)
Internet Explorer 8
Opera 10
Safari 3.2 (525.3)

En las versiones anteriores ese método no funcionará.

Un saludo.
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor

Etiquetas: bucles, eventos
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 13:47.