JSONファイルを見て、<div>
のIDがJSONの "id"値と一致するかどうかに基づいて、適切なコンテンツをHTMLファイルに追加するJSループ(jQueryを使用)を作成します。これは、どのように多くのボックスが追加されるかに関係なく、容易にスケーラビリティがあり、機能する必要があります。JSONファイルを使用して動的にHTMLコンテンツを更新しますか?
<div class="box" id="1">
<h1></h1>
<hr/>
<p></p>
</div>
<div class="box" id="2">
<h1></h1>
<hr/>
<p></p>
</div>
<div class="box" id="3">
<h1></h1>
<hr/>
<p></p>
</div>
そして、各ボックスの要素の値を持つ別々のJSONファイル:基本的に
{
"content": [
{
"id": 1,
"header": "Box 1",
"para": "This is Box 1",
"other": "Another key that's not necessarily used for all boxes"
},
{
"id": 2,
"header": "Box 2",
"para": "This is Box 2"
},
{
"id": 3,
"header": "Box 3",
"para": "This is Box 3",
"other": "Another key that's not necessarily used for all boxes"
}
]
}
を次のように
は私が設定したHTMLファイルを持っていますこれは私が探している結果です(いくつかの基本的なCSSスタイルが追加されています)。私はJSにまだかなり新たなんだと
$.getJSON('content.json', function (data) {
"use strict";
var content = data.content;
$('#1 h1').html(content[0].header);
$('#2 h1').html(content[1].header);
$('#3 h1').html(content[2].header);
$('#1 p').html(content[0].para);
$('#2 p').html(content[1].para);
$('#3 p').html(content[2].para);
});
詳細な答えが、理解されるだろうし、次のスクリプトは、明らかにかかわらず、このコードはそれほどスケーラブルではない、新しい<div>
が追加されるたびに変更しなければなりません私が達成しようとしていることを正確に説明しているものは見つかりませんでした。
ありがとうございます! :)あなたが使用したいことはforEach
ループです
こんにちは、新しい言語を学ぶときに、それがサブタスクに完全なタスクを分離することがしばしば良いことです。たとえば、 - あなたはJavaScriptを使用してループを作成する方法を知っていますか?それをテストして何かを出力するだけです(例えばconsole.logのループカウンター)。一度それが機能したら、ハードコードされた配列をループして、それをコンソールに印刷してみてください...次にJSONをループして印刷してみて、コンソールに印刷する代わりに、それをページの要素に挿入してから、最後に正しいページ要素に配置します。あなたはこれを行うことができます:) –
そして、あなたはJqueryの使い方を学ぶ前にJavaScriptを学ぶべきです。実際にはjQueryを使用する必要はありません。 –
@LucaKiebel、時には単純な問題を解決するために非常に大きなライブラリを導入するのは難しいことです。 Javascriptについてよく知っている方は、もう一方のJavascriptをいつ使うべきか、という良いアイデアがあります。多くのjavascript開発者と協力して、jQueryを最もよく使ったのは、JavaScriptを最初に学んだ人でした。彼らはすべて、jQueryが解決しようとする問題をよりよく理解していました。 –