2017-02-12 9 views
1

こんにちは。私は50ブロックを推測します。 JSON形式のファイルから情報を受け取ります。 JSONから写真へのリンクを取得しました。私はそれをページに渡します。小さなサイズの写真を1回クリックするだけで、すべての写真を大きく変更する必要があります。 リンクを一度に変更する方法を教えてください。データを置き換える方法は?

var image = data["info"][i]["img"]["big"]; 
 
block += '<img src="' + image + '"/>'; 
 
//image - link to photo

+0

をしかし、私はあなたが実際に何を求めているのか理解するのに苦労していますか?あなたは(私が仮定している) 'data [' info] ['img] [' big] 'で表される画像URLからリンクを生成しようとしていますか? –

+0

はい、私はそれを生成します.Ajaxを使用して、必要なデータを取り出して、今度はさらに大きな写真を推測しています。フィルターがあります。小さなサイズのページに画像を作るボタンがあります。どのようにこれを正しく処理するのですか?私のコードhttps://codepen.io/zaytsevav/pen/oBQrOm – alex1303

+0

Javascriptでは、文字列( 'data [" info "]')または '.'演算子(' data.info')を使ってプロパティを読み取ることができます。定数プロパティ名を使用している場合は、 '.'演算子--data.info [i] .img.big'を使う方がはっきりしています。 –

答えて

0

すべての画像がこの

<div id="gallery"> 
    <img ... > 
    <img ....> 
    ..... 
</div> 

のような単一の要素内に表示されているなら、あなたはdiv要素の内容全体を再生成できます。申し訳ありません

var str = ""; 
for (var i = 0; i < data["info"].length; i++) { 
    str += '<img src="' + data["info"][i]["img"]["small"] + '"/>'; 
} 
document.findElementById("gallery").innerHTML = str; 
+0

新しいブロックの各画像。私のコードcodepen.io/zaytsevav/pen/oBQrOm – alex1303

+0

したがって、すべてのブロックを生成した同じコードを使用して、大きなものを小さいものに置き換えることができます。コードのセクション全体を関数に入れると、imageSizeをパラメータとして使用してより使いやすくすることができます。 –

+0

でした。 htmlで(

  • picture.medium
  • ); jsファイル関数関数imgMedium(index){ var data = results [index]; var imgM = ''; for(var i = 0; i '; } document.findElementById( "user")。innerHTML = imgM; }エラーが発生しました:Uncaught TypeError:未定義のプロパティ 'length'を読み取ることができません – alex1303

    関連する問題