Foros del Web » Programando para Internet » Jquery »

warning: Cadena vacía pasada a getElementById()

Estas en el tema de warning: Cadena vacía pasada a getElementById() en el foro de Jquery en Foros del Web. Hola, aunque consigo que las cosas funcionen, aún estoy bastante verde en jquery. Estoy recibiendo este warning todo el tiempo: Cadena vacía pasada a getElementById(). ...
  #1 (permalink)  
Antiguo 21/02/2013, 19:38
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 12 años, 8 meses
Puntos: 34
warning: Cadena vacía pasada a getElementById()

Hola, aunque consigo que las cosas funcionen, aún estoy bastante verde en jquery. Estoy recibiendo este warning todo el tiempo:

Cadena vacía pasada a getElementById().
[Interrumpir en este error]

elem = document.getElementById( match[2] );

jquery-1.7.2.js linea 164

alguien con mas idea que me explique un poco que es lo que hacen esas lineas ...

Aunque solo sea un warning, y hasta el momento no noté ninguna falla en la web, es realmente molesto. Alguna idea a que se debe? a alquien le pasó?

busqué por todos lados pero no encontré data sobre este error.

Estoy usando twitter bootstrap, al principio no salia el warning, en algun momento algo cambié y empezó esto, pero que?

he probado cambiar versiones de jquery sin resultado :s

agrego, el warning aparece al hacer click en cualquier cosa, hasta en el fondo de la web donde no hay nada, al hacer click salta el warning

Última edición por patriciomase; 21/02/2013 a las 19:56
  #2 (permalink)  
Antiguo 21/02/2013, 20:01
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: warning: Cadena vacía pasada a getElementById()

No es un problema de jQuery en si, es de javascript
document.getElementById(), debe de recibir como parámetro, precisamente el id de un elemento de la página ó una variable que lo represente, ejemplo
Código Javascript:
Ver original
  1. function agregar texto(){
  2. var campo1 = document.getElementById('contenedor'); // aquí paso directamente el nombre
  3. campo1.innerHTML = "Hola";
  4. var nombre_id = "contenedor";
  5. var campo2 = document.getElementById(nombre_id); // aqui le paso una variable que representa el nombre
  6. }

Ahora, en tu caso tenés
elem = document.getElementById(match[2]);

En teoría match[2], representa el tercer indice de un array llamado match, pero, por lo visto no lo tenés definido, por eso no recibe nada, una cadena vacia

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 21/02/2013, 20:11
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 12 años, 8 meses
Puntos: 34
Respuesta: warning: Cadena vacía pasada a getElementById()

mmmm y que cornos será match[] .... a buscar en la documentacion de bootstrap a ver
  #4 (permalink)  
Antiguo 21/02/2013, 20:17
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 12 años, 8 meses
Puntos: 34
Respuesta: warning: Cadena vacía pasada a getElementById()

Código Javascript:
Ver original
  1. // Handle HTML strings
  2.         if ( typeof selector === "string" ) {
  3.             // Are we dealing with HTML string or an ID?
  4.             if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) {
  5.                 // Assume that strings that start and end with <> are HTML and skip the regex check
  6.                 match = [ null, selector, null ];
  7.  
  8.             } else {
  9.                 match = quickExpr.exec( selector );
  10.             }

de acá sale match, expertos jquery ayuda
  #5 (permalink)  
Antiguo 21/02/2013, 20:22
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 12 años, 8 meses
Puntos: 34
Respuesta: warning: Cadena vacía pasada a getElementById()

http://bugs.jquery.com/ticket/12538

parece ser un bug de jquery pero aun no entiendo que es lo que trata de hacer? a que se debe?
  #6 (permalink)  
Antiguo 21/02/2013, 21:01
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: warning: Cadena vacía pasada a getElementById()

Cita:
Iniciado por patriciomase Ver Mensaje
http://bugs.jquery.com/ticket/12538

parece ser un bug de jquery pero aun no entiendo que es lo que trata de hacer? a que se debe?
bueno, a decir verdad deberías averiguar por que susas
elem = document.getElementById(match[2]);
lamentablemente no uso ese bootstrap, pero si alguna vez te funcionó bien, el problema no está en el jQuery sino en tus funciones
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 21/02/2013, 21:08
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 12 años, 8 meses
Puntos: 34
Respuesta: warning: Cadena vacía pasada a getElementById()

elem = document.getElementById(match[2]); <--- esa linea es la 164 de jquery, no es código mío
  #8 (permalink)  
Antiguo 21/02/2013, 21:31
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: warning: Cadena vacía pasada a getElementById()

Cita:
Iniciado por patriciomase Ver Mensaje
elem = document.getElementById(match[2]); <--- esa linea es la 164 de jquery, no es código mío
Código Javascript:
Ver original
  1. } else {
  2.                     elem = document.getElementById( match[2] );
  3.  
  4.                     // Check parentNode to catch when Blackberry 4.6 returns
  5.                     // nodes that are no longer in the document #6963
  6.                     if ( elem && elem.parentNode ) {
  7.                         // Handle the case where IE and Opera return items
  8.                         // by name instead of ID
  9.                         if ( elem.id !== match[2] ) {
  10.                             return rootjQuery.find( selector );
  11.                         }
  12.  
  13.                         // Otherwise, we inject the element directly into the jQuery object
  14.                         this.length = 1;
  15.                         this[0] = elem;
  16.                     }
  17.  
  18.                     this.context = document;
  19.                     this.selector = selector;
  20.                     return this;
  21.                 }

Si, pero el error sucede porque en alguna parte estás definiendo mal un selector por su id.
Fijate de bajar otra version de jQuery
http://blog.jquery.com/2012/08/30/jq...-8-1-released/
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #9 (permalink)  
Antiguo 22/02/2013, 06:55
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 12 años, 8 meses
Puntos: 34
Respuesta: warning: Cadena vacía pasada a getElementById()

"definiendo mal un selector por su id" <--- disculpá mi ignorancia con un selector te referís a?

otra nueva, en la versión local no aparece el warning, solo en el server. Y son exactamente iguales. Algún tema de permisos de archivos? no creo que tenga nada que ver pero bueh

Etiquetas: cadena, warning
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 12:35.