Почему элементы равны нулю в jquery, но существуют с document.getelementbyid () - PullRequest
1 голос
/ 11 августа 2009

Я пытаюсь прикрепить некоторые jquery к флажкам в виде сетки, используя 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;
           });

       });

    });*/

Итак, почему любые попытки найти объект с нулевым значением в jquery все же существуют в обычном javascript в том же методе? Что мне здесь не хватает. У меня есть jquery js-файлы, введенные в тег скрипта прямо над этим методом. Я просто не могу найти какие-либо объекты на этой странице с помощью jquery. На других страницах могу.

Ответы [ 4 ]

2 голосов
/ 26 февраля 2011
var val = $("input:radio[name$='rdoselect']:checked").val();           
if (val == 1) {            
    $('[id$=divDate]').attr('disabled', true);                 
}else {             
    $('[id$=divDate]').attr('disabled', false);
}
2 голосов
/ 11 августа 2009

Объекты, полученные в результате селектора jQuery, на самом деле являются обертками вокруг объекта DOM, поэтому вы не обращаетесь к нему так же, как к объекту DOM.

Если вы отправляете уведомление только по имени "name.id", то из вашего первого примера выше такого свойства не будет в оболочке jQuery. Попробуйте указать свой идентификатор следующим образом:

alert(name.attr("id"));
1 голос
/ 11 августа 2009
 var ID = $("#gvTimeSheet_ctl01_chkAll1");

Возвращает объект jQuery, а не ID. ID.id также будет неопределенным. Чтобы получить удостоверение личности, вам необходимо:

var ID = $("#gvTimeSheet_ctl01_chkAll1").attr("id");
0 голосов
/ 11 августа 2009

Есть ли на странице, на которой вы добавляете этот код, библиотека JavaScript-прототипа?

Метод jQuery "$" никогда не возвращает ноль, поэтому это не должно быть проблемой:

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

Все комментарии о необходимости использования .attr('id') все еще остаются (хотя я предпочитаю $('#whatever')[0].id себя.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...