Данные в ответе на Ajax запрос

248
26 февраля 2017, 10:00

привет. есть код

                if (data) 
                {
                    var list = jQuery('<ul />').attr('class', 'list-ul');
                    $("body").append(list);
                    list.text(data);
                }

if срабатывает, если приходят данные, но если я сделаю

if(!data)
{
  ///
}

то не работает. Также пробовал сравнивать данные с пустой строкой "", писал data == "" и data === "", ничего не меняется. Как правильно определить, что в ответ не пришло данных на запрос.

Answer 1

Возможно у вас приходят пробелы в строке и соответственно строка уже не есть пустая. Используйте String.trim() для удаления лишних пробельных символов:

var data = "   "; 
 
data = data.trim(); 
 
if (!data) { 
   console.log('error'); 
} else { 
   var list = jQuery('<ul />').attr('class', 'list-ul'); 
   $("test").append(list); 
   list.text(data); 
}
<div class="test"> 
 
</div>

Answer 2

Вы не проверяли 'else' после вашего 'if'?

Можно если так:

if(data)
{
    var list = jQuery('').attr('class', 'list-ul');
    $("body").append(list);
    list.text(data);
} else {
  // Тут если данные не приходят
}
Answer 3

Всем спасибо за ответы проблема решилась сама по себе. Конструкция

if (data != "") 
{
  ///
}
else
{
  ///
}

раньше почему то не работавшая сейчас хорошо работает.

READ ALSO
Не работает RowEditing в Ext JS

Не работает RowEditing в Ext JS

В grid колонки и данные приходят динамически, при выборе категории в TreePanelПосле получения значений с сервера у грида дергаю метод reconfigure(store,col)

247
Как найти соседний селектор в css?

Как найти соседний селектор в css?

Я знаю, что при коде видаclass1 +

304