Ver Mensaje Individual
  #6 (permalink)  
Antiguo 10/12/2016, 07:45
mpozo
 
Fecha de Ingreso: noviembre-2015
Mensajes: 231
Antigüedad: 8 años, 6 meses
Puntos: 86
Respuesta: propiedad no definida??

Cita:
Iniciado por alfa18 Ver Mensaje
te refieres a comodidad de poner IDs y/o clases con el mismo metodo(querySelector)??
Sí, es un método muy potente

Cita:
Iniciado por alfa18 Ver Mensaje
¿A que te refieres con eso?No entiendo, ¿me podrias explicar?
Los nodeList pueden estar vivos o ser estáticos. Los getElement retornan colecciones vivas, mientra que querySelector retorna colecciones estáticas. ¿Qué quiere decir esto? Pues que querySelector almacena en el cliente el nodeList y aunque este varíe su largo, no será detectado. Los getElement sí detecta el cambio.
Con este ejemplo podemos observarlo
Código Javascript:
Ver original
  1. <!DOCTYPE html>
  2. <html dir="ltr" lang="es-es">
  3.     <head>
  4.         <title></title>
  5.         <meta charset="utf-8">
  6.         <meta name="viewport" content="user-scalable=yes, width=device-width, initial-scale=1">
  7.         <style>
  8.  
  9.         </style>
  10.         <script>
  11.             function isNodelistLive(nList) {
  12.  
  13.                 var body = document.getElementsByTagName('body')[0],
  14.                 largo1 = nList.length,
  15.                 clon = nList.item(0).cloneNode();
  16.  
  17.                 body.appendChild(clon);
  18.                 var largo2 = nList.length;
  19.                 return largo1 !== largo2;
  20.                 //return (largo1 + ' - ' + largo2);
  21.             }
  22.         </script>
  23.     </head>
  24.     <body>
  25.  
  26.         <input type="text" class="input" name="input">
  27.  
  28.         <script>
  29.             var gEBTN = document.getElementsByTagName('input'),
  30.             gEBCN = document.getElementsByClassName('input'),
  31.             gEBN = document.getElementsByName('input'),
  32.             qSA = document.querySelectorAll('.input');
  33.  
  34.             console.log(isNodelistLive(gEBTN)); // true (1 - 2)
  35.             console.log(isNodelistLive(gEBCN)); // true (2 - 3)
  36.             console.log(isNodelistLive(gEBN)); // true (3 - 4)
  37.             console.log(isNodelistLive(qSA)); // false (1 - 1)
  38.         </script>
  39.     </body>
  40. </html>
Este código hace que cada vez que es invocada la función, clona el elemento <input> y retorna true o false arreglo a si el largo del nodeList es igual o desigual al largo del nodeList una vez clonado el elemento. Si después comentas el primer return y descomentas el segundo, verás que los getElement leen el nuevo largo del nodeList, mientras que el largo que retorna querySelector siempre es 1

Cita:
Iniciado por alfa18 Ver Mensaje
no deberia ver además un span-div-body(del hijo al padre)??
En el momento en que omitas o cambies el 3º parámetro a false lo obtendrás