Проверете съдържанието на div с PrototypeJS

Използвам PrototypeJS и трябва да проверя дали съдържанието на div е null или не. Но следният код дава грешка. 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