2009-08-11 6 views
1

I "m essayer de joint certains jquery à cases à cocher dans un gridview, en utilisant document.ready:sont des éléments nuls dans jquery, mais existe avec document.getElementById()

$(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; 
      }); 

     }); 

    });*/ 

Alors, pourquoi toute tentative de trouver un objet null dans jquery, mais existe en javascript normal dans la même méthode? Qu'est-ce que je manque ici.J'ai les jquery js fichiers apportés dans un tag de script directement au-dessus de cette méthode.Je n'arrive pas à trouver des objets sur Sur les autres pages, je peux:

+0

Utilisez-vous d'autres bibliothèques Javascript? –

+0

Pouvez-vous publier le source HTML généré? Peut-être publier un bac à sable à http://jsbin.com/ aiderait à comprendre. –

+0

Comment alertez-vous l'identifiant? – womp

Répondre

2

Les objets qui résultent d'un sélecteur jQuery sont en fait des wrappers autour d'un objet DOM, donc vous n'y accédez pas de la même façon qu'un objet DOM.

Si vous alertez simplement "name.id", dans votre premier exemple ci-dessus, il n'y aura pas de telle propriété sur le wrapper jQuery. Essayez d'alerter votre ID comme suit:

alert(name.attr("id")); 
1
var ID = $("#gvTimeSheet_ctl01_chkAll1"); 

Ce retourne un objet jQuery, pas d'ID. ID.id serait également indéfini. Pour obtenir l'ID, vous avez besoin de:

var ID = $("#gvTimeSheet_ctl01_chkAll1").attr("id"); 
0

Est-ce que la page à laquelle vous ajoutez ce code inclut déjà la bibliothèque JavaScript Prototype?

la méthode « $ » jQuery ne retourne jamais nulle, donc cela ne devrait pas être un problème: (. Bien que je préfère $('#whatever')[0].id moi-même)

// 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() { .... }); 

Tous les commentaires sur besoin d'utiliser .attr('id') rester immobile

2
var val = $("input:radio[name$='rdoselect']:checked").val();   
if (val == 1) {    
    $('[id$=divDate]').attr('disabled', true);     
}else {    
    $('[id$=divDate]').attr('disabled', false); 
} 
+0

La question commence par "Pourquoi". Le code est bon pour expliquer comment, mais cela ne semble pas expliquer pourquoi. – corsiKa

Questions connexes