現在ポートフォリオサイトを作っていましてそこで完成予想図としてはインスタグラムみたいな画像を並べて表示したくてbootstrapのグリッドシステムで均等に配置するという感じでそこの部分はできたのですが今後の保守的なことやhtmlファイルが長くなりそうなのでまとめようと思い外部からのjsonファイルを使用してjqueryで表示させたい思いプログラムを実行してみましたがうまくいきません。
わかりにくいかもしれませんがhtmlの方のaタグのid=jsonDataの方にそれぞれの画像とタイトルを格納して行く感じになっています。現状は一つ格納できておらずjsonデータの最後の方を表示しているので繰り返し回っているけど一つずつ上書きされているのかなっという印象です。
わかりにくいコードだとは思いますが何卒よろしくお願いいたします。
html
1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="utf-8"> 5 <title>ポートフォリオサイト</title> 6 <meta name="viewport" content="width=device-width, initial-scale=1"> 7 <link rel="stylesheet" href="./bootstrap/css/bootstrap.min.css"> 8 <link rel="stylesheet" href="./css/jquery-ui.min.css"> 9 <link rel="stylesheet" href="./css/style.css"> 10 11 <!-- Meta --> 12 <meta name="description" content="ポートフォリオサイトです。"> 13 <meta name="keywords" content="キーワード"> 14 <meta name="language" content="ja"> 15 16 <!-- Favicon --> 17 <link rel="shortcut icon" href="http://example.com/imgs/favicon.ico"> 18 <link href="https://use.fontawesome.com/releases/v5.0.6/css/all.css" rel="stylesheet"> 19</head> 20<body> 21 22<div class="main"> 23 <div class="container"> 24 <div class="row"> 25 <a id="jsonData" href=""> 26 </a> 27 <a id="jsonData" href=""> 28 </a> 29 <a id="jsonData" href=""> 30 </a> 31 <a id="jsonData" href=""> 32 </a> 33 <a id="jsonData" href=""> 34 </a> 35 <a id="jsonData" href=""> 36 </a> 37 <a id="jsonData" href=""> 38 </a> 39 </div> 40 </div> 41</div> 42 43 <script src="jquery-2.1.3.min.js"></script> 44 <script src="./bootstrap/js/bootstrap.min.js"></script> 45 <script src="jquery-ui.min.js"></script> 46 <script src="main.js"></script> 47</body> 48</html>
js
1$(function() 2 { 3 $.ajax({ 4 type: 'post', 5 url: 'json/contents.json', 6 async: true, 7 cache: false, 8 dataType: 'json', 9 scriptCharaset: 'utf-8', 10 success: function(data) 11 { 12 for(var i=0;i<data.length;i++) 13 { 14 var imgCol = $('<div></div>').attr({'class':'col-md-4 imgCol'}); 15 var imgcontainer = $('<div class="imgContainer"></div>'); 16 imgcontainer.append(($('<img>').attr({"src":data[i]["img"],"width":"100%","height":"350px"}))) 17 .append('<div class="imgCover"><div class="coverTitle">'+data[i]["title"]+'</div></div>'); 18 imgcontainer.appendTo(imgCol); 19 } 20 imgCol.appendTo($('#jsonData')); 21 }, 22 }) 23 }); 24 25
json
1[ 2 3 { 4 "img": "./imgs/a.jpg", 5 "title": "a" 6 }, 7 { 8 "img":"./imgs/b.jpg", 9 "title":"b" 10 }, 11 { 12 "img":"./imgs/c.jpg", 13 "title":"c" 14 }, 15 { 16 "img":"./imgs/d.jpg", 17 "title":"d" 18 }, 19 { 20 "img":"./imgs/e.jpg", 21 "title":"e" 22 }, 23 { 24 "img":"./imgs/f.jpg", 25 "title":"f" 26 }, 27 { 28 "img":"./imgs/g.jpg", 29 "title":"g" 30 } 31] 32 33