実現したいこと
トップページとニュース一覧ページページに表示するテキスト情報をCSVで作成し、jquery.csv.jsを使って読み込んでいます。
そのデータを参照の上、トップページは上から3件、ニュース一覧ページは全件表示をしたいと考えております。
hoge.com/ …上から3件表示
hoge.com/news/ …全件表示
御知恵を拝借いただければと思います
発生している問題・エラーメッセージ
まずはトップページ用にfor文の中に ifで分岐を作成したのですが正しく表示がされていません。
該当のソースコード
Javascript
1$(function(){ 2 //news CSV読み込み 3 var target = '#news__list'; 4 var csvList; 5 var count = 1; 6 var insert = ''; 7 $.ajax({ 8 url: 'news.csv', 9 success: function(data) { 10 11 // csvを配列に格納 12 csvList = $.csv.toArrays(data); 13 14 // 挿入するHTMLを作成 15 for (var i = 1; i < csvList.length; i++ ) { 16 if(count < 4){ 17 var cat = csvList[i][0]; 18 var title = csvList[i][1]; 19 var date = csvList[i][2]; 20 var text = csvList[i][3].replace(/\n/g,'<br>'); 21 var url = csvList[i][4]; 22 insert += '<dl class="' + cat +'"><dt><span class="title">' + title + '</span><span class="date">' + date + '</span></dt>'; 23 insert += '<dd><p class="news__text">' + text + '</p>'; 24 if(url === undefined){ 25 insert += ''; 26 } else{ 27 insert += '<p class="news__link"><a href="' + url + '" target="_blank">' + url + '</a></p>'; 28 } 29 insert += '<p class="news__cat">' + cat + '</p></dd></dl>'; 30 31 $(target).append(insert); 32 count++; 33 } 34 35 } 36 37 //news アコーディオン 38 $('#news__list dl dt').click(function(){ 39 $(this).toggleClass('open'); 40 $(this).next('dd').slideToggle(); 41 }); 42 } 43 }); 44});
html
1<div id="news__list"> 2</div>
csv
1Category,title,date,text,link 2"カテゴリ1","見出し","日付","本文","URL" 3"カテゴリ2","見出し","日付","本文","URL" 4"カテゴリ3","見出し","日付","本文","URL" 5"カテゴリ4","見出し","日付","本文","URL" 6"カテゴリ5","見出し","日付","本文","URL" 7"カテゴリ6","見出し","日付","本文","URL" 8"カテゴリ7","見出し","日付","本文","URL" 9"カテゴリ8","見出し","日付","本文","URL" 10"カテゴリ9","見出し","日付","本文","URL"
回答2件
あなたの回答
tips
プレビュー