В условном выражении нет ничего плохого, кроме того, что elem
может быть глобальным, если оно не объявлено во внешней области видимости.Если он не объявлен, сделайте это заранее:
var elem, g=0;
Если вы хотите сделать JSLint счастливым, вы можете добавить явное сравнение к нулю:
while((elem = document.getElementById("optionsDiv"+g)) !== null)
Я не вижучто-нибудь о "Ожидаемый {".Однако размещение g ++ в той же строке, что и фигурная скобка, является странным стилем.
Помните, что JSlint частично относится к личным предпочтениям Крокфорда, с которыми вы не всегда должны соглашаться.Хорошо, вторая ошибка связана с тем, что JSLint хочет, чтобы вы возвращали возврат в скобках, например:
if(elem.className==="optionsDivVisible")
{
return g;
}
g++;
Это также стиль, который я предпочитаю кодировать. Я считаю, что он избегает определенных ошибок.Однако это опять субъективно.Очевидный компромисс в том, что он добавляет две строки.