Waarom zijn elementen null in jQuery, maar toch bestaan ​​met document.getElementById ()

stemmen
1

I probeer gehecht sommige jQuery aan vakjes in een gridview, met behulp van 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;
           });

       });

    });*/

Dus, waarom zijn alle pogingen in het vinden van een object null in jQuery, maar toch bestaan ​​in reguliere javascript binnen dezelfde methode? Wat mis ik hier. Ik heb de jQuery js bestanden bracht in een script-tag direct boven deze methode. Ik kan het gewoon niet lijken te voorwerpen op deze pagina met jQuery vinden. Op andere pagina's, kan ik wel.

De vraag is gesteld op 11/08/2009 om 19:52
bron van user
In andere talen...                            


4 antwoorden

stemmen
2

Objecten die het gevolg zijn van een jQuery selector zijn eigenlijk wikkels rond een DOM object, dus je hoeft geen toegang tot het hetzelfde als een DOM object.

Als je waarschuwen gewoon "name.id", vanaf uw eerste voorbeeld hierboven, zal er niet een dergelijke woning op de jQuery wrapper zijn. Probeer waarschuwen uw ID als volgt:

alert(name.attr("id"));
antwoordde op 11/08/2009 om 20:00
bron van user

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

Dit geeft een jQuery object, geen ID. ID.id zou ook ongedefinieerd. Om de ID te krijgen, moet u:

var ID = $("#gvTimeSheet_ctl01_chkAll1").attr("id");
antwoordde op 11/08/2009 om 20:02
bron van user

stemmen
0

Is de pagina die u deze code toe te voegen aan zijn al inclusief de Prototype JavaScript-bibliotheek?

jQuery "$" methode nooit meer terug null, dus dit moet geen probleem zijn:

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

Alle opmerkingen over hoeven te gebruiken .attr('id')stil te staan (hoewel ik de voorkeur aan $('#whatever')[0].idmezelf.)

antwoordde op 11/08/2009 om 20:15
bron van user

stemmen
2
var val = $("input:radio[name$='rdoselect']:checked").val();           
if (val == 1) {            
    $('[id$=divDate]').attr('disabled', true);                 
}else {             
    $('[id$=divDate]').attr('disabled', false);
}
antwoordde op 26/02/2011 om 11:20
bron van user

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