質問: "textStatus:"+ textStatus + "" + "status:"+ jqXHR.status + "" + "responseText : " + jqXHR.responseText + ""; $('#page').html(txt); } }); // $('#page').load('external.html'); }); ``` このコードをベースに、external.htmlではなく、日付ごとに連番を降ったhtmlファイルを日付に応じて読み込むことはできますでしょうか? できるとすれば、具体的にどのように記述すればよいのでしょうか。 ややこしい説明で恐縮ですが、どなたかご教授頂けますと幸いです。 どうぞよろしくお願い致します。
回答: あなたのやりたい事をあなたの代わりにやってくれるサイトは、 ここじゃなくてクラウドファンディングという仕事の斡旋サイトになるからね。 だから全てをやってあげる事はできない。ヒントだけ出すから頑張って実装していこう。 load.jsが何やってるかをざっくり解説するから、 keiさんの回答と合わせてどうすればいいかよく考えて実装していこう。 ``` $.ajax('external.html', options).then(fn, fn); ``` まず、この`$.ajax`の第一引数の`'external.html'`。 JavaScriptに限らず大抵のプログラミング言語では、変数というメモリ空間を宣言して値を保存することが出来る。 ブラウザー上でF12キーを押すとコンソール画面が表示されるから、下記の内容を打ち込んでみよう。 コンソール欄が見えない?なら更にEscキーでコンソール欄の表示・非表示が切り替わる。 `console.log()`のカッコの中に調べたい対象を入れて実行すると、コンソール上に対象に何が入っているかを表示してくれる。 ``` // この行のように行の先頭に「//」と記入すると、同じ行のそれ以降の記述は実行されない console.log('external.html'); // "external.html" var url = 'external.html'; console.log(url); // "external.html" ``` このように、関数を実行する直前で`console.log('external.html')`等と文字列を宣言することも出来るし、 プリペイドカードにお金をチャージしてから支払うように、一度`var url = 'external.html'`という風に`url`変数を宣言して、その中に文字列を埋め込んでおき、`console.log(url)`という風に利用することもできる。 つまり、こう書き換えるわけだね。 ``` var url = 'external.html'; $.ajax(url, options).then(fn, fn); ``` 次に変数には何が入るかを解説しよう。 思いつくものは大抵なんでも入れておくことが可能だね。 変数の宣言は行の先頭で`var`、忘れるとエラーになるので気をつけて。 ``` var url = 'external.html'; var num = 123; var calc = 10 + num; // こんな風に式も書ける var options = { timeout : 1000, datatype: 'html' }; var fn = function (data) { var out_html = $($.parseHTML(data)); $('#page').empty().append(out_html.filter('#contents')[0].innerHTML); } console.log(url); // "external.html" console.log(num); // 123 console.log(calc); // 133 <- 式を展開した結果が格納されている url = '1123.html' // 2回目書くと上書き代入、external.htmlは消去される console.log(url); // "1123.html" var month = 5; var day = 20; url = month + day + '.html'; // + 演算子を使って文字列同士を連結させる事もできる console.log(url); // "25.html" <- 月と日付が足されて駄目だ url = month + '-' + day + '.html'; // 間にハイフンを入れてみる console.log(url); // "5-10.html" url = '' + month + day + '.html'; // + 演算子は左から解釈していくので、無意味な空文字列を左に埋め込んでやると... console.log(url); // "520.html" <- 勝手に数値同士で計算されなくなった ``` 今回やりたい事は全部詰め込んだ。 一度勉強だと思って数行ずつでも良いんで全てコピペするなり、打ち込むなりして挙動を確認しておこう。 > > 日付ごとに連番を降ったhtmlファイルを日付に応じて読み込むことはできますでしょうか? > > > ここまで読んだらもう出来るね? `日付ごとに連番を振ったhtml`の部分の文字列はkeiさんの回答で作れる。 それを加工してやればいい、 以下大ヒント。 ``` var today = new Date(); var month = ?????; // todayから月の情報を取り出す var day = ?????; // todayから日の情報を取り出す var url = month + '-' + day + '.html'; // 連番のファイルのURLを文字列連結で作り出す、文字列が気に入らなかったら色々修正頑張って $.ajax(url, { // 'external.html'の代わりにurlを使ってアクセスさせる ```