私はあなたのjavascriptのデータにアクセスすることができますので、あなたはすでにDOMでJSONデータをロードしていると信じています。 jQuery、AngularJS、プレーンなJavascriptのようなJavaScriptライブラリやフレームワークを使用していますか? JavaScriptコードを拡張子.jsのファイルに外部で整理し、<script>
タグを<head>
または<body>
セクション内に使用してHTMLにロードする方が常に良いです。
手順HTMLに動的にアンカータグを生成する:
- オプションが含まれます親HTML要素を追跡作成/ DOMオブジェクト(ジャバスクリプト)
- にJSONからデータを取得します。変数にこの参照を保持します。 JSON
- からアクセスされるデータ配列(またはオブジェクト)へ
- 反復を繰り返し、各データ値に使用されるHTML要素を作成し、各反復
- 内の関連プロパティの値を取得します。この場合、テンプレートは 'value'でなければなりません
- 上記の#2に格納された親要素にこの生成コードを追加します。
- 反復が完了したら、親要素を適切な場所のDOMに挿入(追加)します。
ケース1:プレーンジャバスクリプト -
使用XHR JSONを読み込み、変数にデータを取得します。名前をJSONDataにします。
JavaScriptで作成された親要素の参照をHTML内に保持します。
//このクラス名に一つだけの要素を持っているか、
//懸念要素は、このHTMLコード内でこのクラス名による最初の要素であることを願って。
//一般的に、我々はjavascriptのコード内で、個別の要素を識別するためのIDを使用する必要があるのいずれかをお勧め、そのための
//それ以外の使用、特定の識別子として。
var parentDropdownContainer = document.getElementsByClassName( 'dropdown-content')[0]; JSONデータで
反復処理
for (var counter = 0, len = JSONData.length - 1; counter < len; counter ++){
//we will add logic to generate HTML
}
あなたは、反復の他の変異体を使用することができます - 中のため、しばらく、Array.splice()などご理解件まで。
このイテレータの中で、私たちは、HTMLコードを作成して、今、このドロップダウンで必要なダイナミックなオプションをレンダリングする必要があり、親コンテナ
for (var counter = 0, len = JSONData.length - 1; counter < len; counter ++){
var currentData = JSONData[counter]; //this holds the reference of the current data in this iteration
var dropdownElement = document.createElement('a');
dropdownElement.setAttribute('href','#'); //this adds the href attribute into the anchor element.
//lets add another attribute to the anchor element to represent the dynamic id/value associated with this data
dropdownElement.setAttribute('data-value',currentData.A);
//lets add the value inside the anchor element
dropdownElement.innerHTML = currentData.B;
//lets append this element to the parent container
parentDropdownContainer.appendChild(dropdownElement);
}
にそれを追加する必要があります。
'javascript'タグを追加したので、これまでに試したJavaScriptコードも含めてください。デバッグや改善に役立ちます。 – ITWitch