お世話になります。
外部CSVデータを読み取り、カテゴリごとに別けてslickに書き出すという処理をしております。
その際、CSVを書き出すときに同じ処理を繰り返し記述しています。
この処理をスマートに出来ないでしょうか?
html
1<head> 2<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css"> 3<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick-theme.css"> 4 5<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script> 6<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js"></script> 7<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-csv/1.0.21/jquery.csv.min.js"></script> 8</head> 9 10<body> 11 <div id="slick_1" class="slick_box"> 12 <ul class="slider"> 13 </ul> 14 </div> 15 <div id="slick_2" class="slick_box"> 16 <ul class="slider"> 17 </ul> 18 </div> 19 <div id="slick_3" class="slick_box"> 20 <ul class="slider"> 21 </ul> 22 </div> 23</body>
Javascript
1$(function(){ 2 //slider 3 function sliderInit(){ 4 $(".slider").slick({ 5 autoplay: false, 6 dots: false, 7 arrows:true, 8 centerMode: true, 9 centerPadding: '10%', 10 slidesToShow: 1, 11 slidesToScroll: 1 12 }); 13 } 14 15 //CSV書き出し 16 function readCsv(data) { 17 var csv = $.csv.toArrays(data); 18 var insert_1 = ''; 19 var insert_2 = ''; 20 var insert_3 = ''; 21 $(csv).each(function() { 22 if (this.length > 0 && this[0] === 'カテゴリ1') { 23// insert_1 += '<li>'; 24 insert_1 += '<div>' + this[0] + '</div>'; 25 insert_1 += '<div>' + this[1] + '</div>'; 26 insert_1 += '<div>' + this[2] + '</div>'; 27 insert_1 += '<div>' + this[3] + '</div>'; 28 insert_1 += '<div>' + this[4] + '</div>'; 29 insert_1 += '<div>' + this[5] + '</div>'; 30 insert_1 += '</li>'; 31 } else if (this.length > 0 && this[0] === 'カテゴリ2') { 32 insert_2 += '<li>'; 33 insert_2 += '<div>' + this[0] + '</div>'; 34 insert_2 += '<div>' + this[1] + '</div>'; 35 insert_2 += '<div>' + this[2] + '</div>'; 36 insert_2 += '<div>' + this[3] + '</div>'; 37 insert_2 += '<div>' + this[4] + '</div>'; 38 insert_2 += '<div>' + this[5] + '</div>'; 39 insert_2 += '</li>'; 40 } else if (this.length > 0 && this[0] === 'カテゴリ3') { 41 insert_3 += '<li>'; 42 insert_3 += '<div>' + this[0] + '</div>'; 43 insert_3 += '<div>' + this[1] + '</div>'; 44 insert_3 += '<div>' + this[2] + '</div>'; 45 insert_3 += '<div>' + this[3] + '</div>'; 46 insert_3 += '<div>' + this[4] + '</div>'; 47 insert_3 += '<div>' + this[5] + '</div>'; 48 insert_3 += '</li>'; 49 } else{ 50 return false; 51 } 52 }); 53 $('#slick_1 .slider').append(insert_1); 54 $('#slick_2 .slider').append(insert_2); 55 $('#slick_3 .slider').append(insert_3); 56 sliderInit(); 57 58 } 59 var csvfile = 'data/case_bio.csv'; 60 $(function(){ 61 $.get(csvfile, readCsv, 'text'); 62 }); 63});
csv
1カテゴリ1,01,見出し01,ニーズ01,アプローチ01,成果物01 2カテゴリ1,02,見出し02,ニーズ02,アプローチ02,成果物02 3カテゴリ1,03,見出し03,ニーズ03,アプローチ03,成果物03 4カテゴリ2,01,見出し01,ニーズ01,アプローチ01,成果物01 5カテゴリ2,02,見出し02,ニーズ02,アプローチ02,成果物02 6カテゴリ2,03,見出し03,ニーズ03,アプローチ03,成果物03 7カテゴリ3,01,見出し01,ニーズ01,アプローチ01,成果物01 8カテゴリ3,02,見出し02,ニーズ02,アプローチ02,成果物02 9カテゴリ3,03,見出し03,ニーズ03,アプローチ03,成果物03
回答3件
あなたの回答
tips
プレビュー