YQLと一緒に遊んでいて、返された結果がJSONとして返されました。したがって、私はいくつかのJavaScriptを使用してそれを実行しようとしています。すべてうまく動作しますが、1つの要素についてはJavaScriptコードが壊れてしまいます。オブジェクトが存在しない場合、JavaScriptコードを中断しないでください。
これは私のJSONの一部です:
cbfunc({
"query": {
"count": 30,
"created": "2011-12-22T20:48:45Z",
"lang": "en-US",
"diagnostics": {
"publiclyCallable": "true",
"url": {
"execution-start-time": "1",
"execution-stop-time": "2214",
"execution-time": "2213",
"proxy": "DEFAULT",
"content": "http://www.example.com"
},
"user-time": "2254",
"service-time": "2213",
"build-version": "24402"
},
"results": {
"li": [
{
"class": "item",
"div": [
{
"class": "onsale",
"p": {
"class": "product-image",
"a": {
"href": "http://www.example.com",
"title": "linktitle",
"img": {
"src": "http://www.example.com/image.jpg",
}
}
}
},
{
"class": "price-box",
"span": {
"class": "normal-price",
"span": {
"class": "price",
"content": "900,-"
}
}
}
],
"h5": {
"a": {
"href": "http://www.example.com",
"content": "Link content"
}
},
},
{
"class": "item",
"div": [
{
"class": "onsale",
"p": {
"class": "product-image",
"a": {
"href": "http://www.example.com/2.html",
"title": "Link title",
"img": {
"src": "http://www.example.com/image2.jpg",
}
}
}
},
{
"class": "price-box",
"span": {
"class": "normal-price",
"span": {
"class": "price",
"content": "812,-"
}
}
}
],
"h5": {
"a": {
"href": "http://www.example.com/2.html",
"content": "Link 2 content"
}
},
}
etc.
私は私が望むコンテンツをつかむために、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
のうちの1つか2つが、私が反復処理をしているのに、span.span.content
がなく、p.span.content
になっています。つまり、コードによってspan.span.content
が見つからないことがあり、コードが破損することがあります。
どうしてですか?これを壊さないために私ができることに対する解決策はありますか? span.span.content
などがないアイテムにデフォルトのフォールバックを設定することはできますか?
パーフェクトジェドを!ありがとう、たくさんの仲間。 +1と正解。 –