うーん、私はあなたが何をしたいのか理解していると思います。jQueryを使用して、nav.htmlをロードし、そのコンテンツをそのdivに入れたいですか?
サーバーサイドからやってみませんか?これらのdivがサーバー側で作成された場合、サーバーはページの読み込み中にそれらが必要であることを認識し、JSに処理させるのではなく、それらを含めることができます。
jQuery、おそらくAJAX/HTTPコードを使用してnav.htmlをロードする方法がわかりません。ただし、変数に設定したら、element.innerHTMLを使用して任意のHTMLテキストをDOM要素に格納できます。
ただし、サーバーで特定のクラスを設定し、一部の要素のタイトル属性にデータを追加する代わりに(もちろん、インクルードを処理するだけのサーバー側のより良いアプローチを考慮していません)、これらの要素にIDを付けます。次に、HTMLドキュメントの下部に、それらのIDとそれらの処理方法(たとえば、それらにロードされるファイル)を保持するJSON配列を出力します。
次に、JSファイルでその配列を取得し、ループして、必要に応じてデータを処理します。
編集:私は前にそのようなことをしたことがありません、あなたはsxyntaxエラーをテストするためにそれを実行しなければなりません。
<?php
$fileslinks = array(
array(
'id' => 'id1',
'filename' => 'file1.html'
),
array(
'id' => 'id2',
'filename' => 'file2.html'
),
array(
'id' => 'id3',
'filename' => 'file3.html'
)
);
?>
<div id='id1'></div>
<div id='id2'></div>
<div id='id3'></div>
<script>
var fileslinks = <?php echo json_encude($fileslinks); ?>;
fileslinks.forEach(printFiles);
function printFiles(element, index, array){
var fileContent = // load from element.filename
document.getElementById(element.id).innerHTML = fileContent;
}
if(!Array.prototype.forEach){
Array.prototype.forEach = function(fun){
var len = this.length;
if(typeof fun != "function")
throw new TypeError();
var thisp = arguments[1];
for(var i = 0; i < len; i++){
if(i in this)
fun.call(thisp, this[i], i, this);
}
};
}
</script>