Проверьте содержимое div с помощью PrototypeJS.

Я использую PrototypeJS, и мне нужно проверить, является ли содержимое div нулевым или нет. Но следующий код выдает ошибку. div изначально не существует. Он добавляется через функцию AJAX. Как я могу это проверить?

if($('lesson-'+tab).innerHTML() == null)
  {
     //do the job
  }

person user1425871    schedule 31.05.2012    source источник


Ответы (2)


innerHTML — это строковое свойство HTMLElement, а не function, поэтому при его вызове вы получите сообщение об ошибке. Поскольку это строка, вы проверяете не нуль, а то, что строка пуста. Кроме того, вы можете проверить, существует ли элемент, чтобы предотвратить ошибку, когда результатом функции $ является null. И, как уже упоминал Джон Конде, вам нужно проверить после выполнения вызова AJAX:

new Ajax.Request(url, {
  onComplete: function(transport) {
    var lessonTab = $('lesson-' + tab)
    if (!lessonTab || lessonTab.innerHTML.length === 0) {
      // do stuff
    }
  }
})
person Tharabas    schedule 31.05.2012

Вам нужно дождаться вызова Ajax, чтобы проверить содержимое этого DIV:

new Ajax.Request(url, {
  method: 'get',
  onSuccess: function(transport) {
    if($('lesson-'+tab).innerHTML() == null)
    {
     //do the job
    }
  }
});
person John Conde    schedule 31.05.2012
comment
этот код содержит ошибки. if($('lesson-'+tab).innerHTML() == null всегда будет терпеть неудачу независимо от контекста, но вы делаете правильное замечание. - person gbtimmon; 11.06.2012