странное поведение условия if-else
Други, поможите. То ли я тупой, то ли одно из двух.
Есть js скрипт, который отсылает данные серверу (аяксом через post) и получает от него ответ (если конкретно, то в ответе или месседж успешного выполнения, или меседж ошибки) в виде json объекта. объект удачно распарсиваю и дальше такая строчка if (data.Success.new_album!==undefined) $("#messages").html(data.Success.new_album); if (data.Errors.new_album!==undefined) $("#messages").html(data.Errors.new_album) Т.е. если есть переменная data.Success.new_album то выводим текст этой переменной, или же выводим текст переменной data.Errors.new_album. А вот фигушки, второе условие не срабатывает никогда, даже если я его нарочно провоцирую. В данном случае никогда не выдаст ошибку. Условия меняю местами и теперь никогда не выдаст "успех". Уже пробовал переписать через if-else с дотошной расстановкой всех скобочек и прочего по синтаксису. Что еще выявил, если переписать вот так: if (data.Success.new_album!='фактическое_� �одержание_переменной') {alert('notok')} else {alert('ok')} то уже никогда не выведет "notok", даже если явно провоцирую. Почему? Переменная пустая - молчит, переменная содержит верный текст - выводит "ok". Пробовал разные комбинации ==, ===, !==, != и везде что-то не срабатывает. Я реально не понимаю :blink: |
не знаю точной структуры вашего json'a могу только предположить, что нужно писать
var message = ""; if ( "Success" in data && "new_album" in data.Success ) { message = data.Success.new_album; } else if ( "Errors" in data && "new_album" in data.Errors ) { message = data.Errors.new_album; } $("#messages").html( message ); |
спасибо, добрый волшебник :victory: , работает. а в чем специфика собсно? почему именно так? если не затруднит вас ответить
|
Часовой пояс GMT +3, время: 20:55. |