Я играю с некоторыми YQL , и возвращаемый результат возвращается как JSON.Поэтому я пытаюсь запустить его, используя какой-то JavaScript.Все работает нормально, но когда дело доходит до одного элемента, который я хотел бы получить, мой код JavaScript ломается.
Это часть моего JSON:используя следующий фрагмент кода JavaScript, чтобы захватить содержимое, которое я хочу.
function cbfunc(o){
var items = o.query.results.li;
var output = '';
var no_items=items.length;
for(var i=0;i<no_items;i++){
var img = items[i].div[0].p.a.img.src;
var price1 = items[i].div[1];
var price = price1.span.span.content;
var title = items[i].h5.a.content;
var link = items[i].h5.a.href;
var desc = items[i].description;
output += "<img src='" + img + "' /><h3><a href='" + link + "'>"+title+"</a></h3>" + price + "<hr/>";
}
// Place product in div tag
document.getElementById('results').innerHTML = output;
}
Как вы, вероятно, видите, я перебираю все li
и пытаюсь распечататьиз каждого li
изображения, ссылки, названия и цены.Почти все работает, но когда я пытаюсь получить цену каждого продукта, мой JavaScript ломается.Я обнаружил, что один или два из li
, через которые я перебираю, не имеют span.span.content
, вместо этого у них есть p.span.content
.Это означает, что в некоторых случаях код не может найти span.span.content
, а затем он ломается.
Почему это происходит?Есть ли решение, что я могу сделать, чтобы это не сломалось?Возможно ли иметь какой-то запасной вариант по умолчанию для предметов, которые не получили span.span.content
или что-то подобное?