¿Por qué los elementos son nulos en jquery? Aún existen con document.getelementbyid ()

votos
1

Intento adjuntar algunos jquery a casillas de verificación en una vista de cuadrícula, usando document.ready:

  $(document).ready(function()
  { 
       var chkBox= document.getElementById(gvTimeSheet_ctl01_chkAll1);
       //I can alert chkBox.id, element exists

       var name = $(input[name='gvTimeSheet$ctl01$chkAll1']);
       //Here, when I alert the id, I get a null

       var ID = $(#gvTimeSheet_ctl01_chkAll1);
      //Here, when I alert the id, I get a null

       var withClass = $(.chkAll1Class);
       //Here, when I alert the id, I get a null

       var withClass2 = $(.Bill1);
       //Here, when I alert the id, I get a null

       //This line causes the browswer to crash and gives me the following error
       //Microsoft JScript runtime error: 'null' is null or not an object
       $(#gvTimeSheet_ctl01_chkAll1).click(function()           
       {
           var checked_status = this.checked;
           $(input[class=Bill1]).each(function()
           {
           this.checked = checked_status;
           });

       });

    });*/

Entonces, ¿por qué hay intentos de encontrar un objeto nulo en jquery, pero existen en javascript regulares dentro del mismo método? Que me estoy perdiendo aqui. Tengo los archivos jquery js traídos en una etiqueta de script directamente arriba de este método. Parece que no puedo encontrar ningún objeto en esta página con jquery. En otras páginas, puedo.

Publicado el 11/08/2009 a las 19:52
fuente por usuario
En otros idiomas...                            


4 respuestas

votos
2

Los objetos que resultan de un selector jQuery son en realidad envoltorios alrededor de un objeto DOM, por lo que no tiene el mismo acceso que un objeto DOM.

Si alerta solo de "name.id", en su primer ejemplo anterior, no habrá ninguna propiedad de este tipo en el contenedor jQuery. Intente alertar a su ID de la siguiente manera:

alert(name.attr("id"));
Respondida el 11/08/2009 a las 20:00
fuente por usuario

votos
1
 var ID = $("#gvTimeSheet_ctl01_chkAll1");

Esto devuelve un objeto jQuery, no una ID. ID.id tampoco estaría definido. Para obtener la identificación, necesita:

var ID = $("#gvTimeSheet_ctl01_chkAll1").attr("id");
Respondida el 11/08/2009 a las 20:02
fuente por usuario

votos
0

¿La página a la que está agregando este código ya incluye la biblioteca Prototype JavaScript?

El método "$" de jQuery nunca devuelve nulo, por lo que esto no debería ser un problema:

// This line causes the browswer to crash and gives me the following error
// Microsoft JScript runtime error: 'null' is null or not an object
$("#gvTimeSheet_ctl01_chkAll1").click(function() { .... });

Todos los comentarios sobre la necesidad de usar .attr('id')siguen en pie (aunque yo prefiero a $('#whatever')[0].idmí mismo).

Respondida el 11/08/2009 a las 20:15
fuente por usuario

votos
2
var val = $("input:radio[name$='rdoselect']:checked").val();           
if (val == 1) {            
    $('[id$=divDate]').attr('disabled', true);                 
}else {             
    $('[id$=divDate]').attr('disabled', false);
}
Respondida el 26/02/2011 a las 11:20
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more