2013-09-17 2 views
0

Я пишу петлю HTML, используя javascript. Он будет проходить через ряд изображений и отображать их с дополнительной информацией. Похоже, что на выходе HTML всегда отображается NaN, как показано здесь. enter image description hereJQuery/Javascript: есть NaN на моем HTML

Вот Javascript в вопросе:

var caption = '<p></p>'; 
if($.isEmptyObject(data[i].caption) !== true) 
{ 
    caption = '<p class="caption" style="top:'+data[i].height+'px;">'+ 
      data[i].caption + 
      '</p>'; 
} 
var li = '<li data-uk-modal="{target:#modal-open-image}"' 
     + 'class="open"' 
     + 'image="'+ data[i].photo +'"' 
      + 'caption_height="'+ data[i].height +'"' 
     + 'caption="'+ data[i].caption +'">' 
     + '<a href="#" class="uk-thumbnail uk-overlay-toggle">' 
     + '<div class="uk-overlay">' 
     + '<img src="'+ data[i].photo +'" width="250px"/>' 
     + caption + 
     + '<div class="uk-overlay-caption">' 
     + '<p> Sender: ' + data[i].sender + '</p>' 
      + '<p> Date: ' + data[i].date + '</p>' 
      + '<p> limit: '+ data[i].limit + '</p>' 
     + '<p> counter: ' + data[i].counter + '</p>' 
     + '</div>' 
     + '</div>' 
     + '</a>' 
     +'</li>'; 
     $photo.append(li); 

enter image description here

Я думаю, что проблема будет лежать на переменном заголовок. данные [i] представляют собой массив из запроса базы данных.

enter image description here

мне нужно проверить, если есть что-то на данных [я] .Caption. Я пытался использовать длину, но это не работает, поэтому я проверяю, существует ли объект. Хотя я не уверен, что это работает.

Мой вопрос: правильно ли отображать правильность заголовка, и если он ничего не добавит в var li.

Спасибо.

+7

Понятно, что Владимир Путин просто не номер. –

+0

Попробуйте это '[...] +" "+ caption + [...]' – Reinherd

+5

Довольно уверен, что это означает «Не националист» – elclanrs

ответ

0

Вы можете кодировать его в одной строке:

((data && data[i] && data[i].caption) ? " your stuff " : "") 

Но обратите внимание, что проверка «данные [я] .Caption» в JavaScript означает, что: ноль это ложь, пустая строка является ложным. Кроме того, если вы имеете в виду номер, который вы можете добавить условие, используя метод isNaN

0

Пожалуйста, используйте этот вместо «+ заголовок +»

isNaN(data[i].caption) ? '' : data[i].caption 

or if(isNaN(data[i].caption)==true){ 

    //do somthing 
}else{ 

//do somthing 

} 
+0

просто для clafiry, я должен быть переменной заголовка условия, а не данными [i] .caption? –

0

Спасибо за обратную связь. Мне удается сожрать решения, в которых ты играешь, и я закончил с этим.

var height = (data[i].height == null)?0:data[i].height; 
var caption= (data[i].caption== null)?'':data[i].caption; 
var li = '<li data-uk-modal="{target:\'#modal-open-image\'}"' 
     + 'class="open"' 
     + 'image="'+ data[i].photo +'"' 
     + 'caption_height="'+ height +'"' 
     + 'caption="'+ caption +'">' 
     + '<a href="#" class="uk-thumbnail uk-overlay-toggle">' 
     + '<div class="uk-overlay">' 
     + '<img src="'+ data[i].photo +'" width="250px"/>' 
     + '<p class="caption" style="top:' + height +'px;">' 
     + caption 
     + '</p>' 
     + '<div class="uk-thumbnail-caption">' 
     + '<p> Sender: ' + data[i].sender + '</p>' 
     + '<p> Reciever: '+ data[i].reciever + '</p>' 
     + '<p> Date: ' + data[i].date + '</p>' 
     + '<p> limit: '+ data[i].limit + '</p>' 
     + '</div>' 
     + '</div>' 
     + '</a>' 
     +'</li>'; 
Смежные вопросы