Rss Feedで新着記事をサイドバーに表示させていたのですが、表示できなくなってしまいました。
原因としては画像の無い記事が先頭に来た場合、Nullが帰ってきてしまうからでした。
先頭の記事に画像が含まれていない場合、次の記事を読み込むという風にしたいのですがうまくいきません。下記のように書いたのですが、どのように改善すればよいでしょうか?
もともとのコードはこちらのサイトを参考に
http://www.aiship.jp/knowhow/archives/29205
サムネイルを読み込む部分をこのように書いていました。
//サムネイル画像の取得 var description=$(this).find('description'[0].firstChild.nodeValue; var thumbnails = description.match(/<img[^>]+>/gi); thumbnail = thumbnails[0];
この場合先頭に画像の無い記事が来てしまうと
thumbnail = thumbnails[0];のところで
Uncaught TypeError: Cannot read property '0' of null
となってしまいました
そのため
//サムネイル画像の取得 var description=$(this).find('description'[0].firstChild.nodeValue; var thumbnails = description.match(/<img[^>]+>/gi); if (thumbnails != null){ thumbnail = thumbnails[0]; }else{ var description=$(this).find('description'[1].firstChild.firstChild.nodeValue; var thumbnails = description.match(/<img[^>]+>/gi); thumbnail = thumbnails[1]; }
とすれば2番目のものが読み込めるのではと考えたのですが、 Cannot read property 'firstChild' of undefinedとなってしまいました。
.firstChild.firstChild.nodeValue;の部分を.eq(1).nodeValue;としても見たのですが
Cannot read property 'eq' of undefinedとなってしまいます
上記のような場合、次の要素を読み込ませるにはどのような記述をする必要がありますでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。