質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

3回答

703閲覧

htmlのあるセクションの内容を一括で変更したい

cesolution

総合スコア217

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

1クリップ

投稿2020/03/17 13:46

前提・実現したいこと

現在、html、css、javascriptでホームページの作成を行っています。
ホームページのbody部分は、大きく2列に分かれており、左側の列に他のページへのリンクを表示しています。
イメージとしては以下のような形で各ページへのリンクを一覧で出しているのですが、ページが増えるにつれてリンクを増やした際に、このリンク部分の記述を変更していくのが辛くなってきました。

該当のソースコード

html

1<div id="columnL"> 2 <div class="submenu"> 3 <h4><li><a href="aaa.html">aaa1</a></li></h4> 4 <li><a href="bbb.html">bbb1</a></li> 5 <li><a href="ccc.html">ccc1</a></li> 6

現在全部で50ページほどなのですが、ページを増やすたびに、例えば上記のbbb.htmlとccc.htmlの間にddd.htmlという新しいページのリンクを追加する場合、現在は地道に50ページ分のページを全て以下のように書き換えていっています。

該当のソースコード

html

1<div id="columnL"> 2 <div class="submenu"> 3 <h4><li><a href="aaa.html">aaa1</a></li></h4> 4 <li><a href="bbb.html">bbb1</a></li> 5 <li><a href="ddd.html">ddd1</a></li> <!-- この挿入を50ページ分繰り返すのではなく、一括で変更されるようにしたい --> 6 <li><a href="ccc.html">ccc1</a></li> 7

恐らくHPを作り始める前に、真面目にHPの作り方について学んで構成をしっかり考えてよかったのかとは思うのですが、なんとなくで作り始めたために現在更新するのが苦痛になってきています。
上記のリンクについてはテンプレートのようなページを作っておいて、上記のリンク用の列は、そのページに記載されている内容を読みに行くといったような設定は可能でしょうか?
(あるいはもっと素直な作り方はできるでしょうか?)
ご専門の方のお知恵を貸していただけると非常に有難いです。

宜しくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

解決後ですが。
aaa.html、bbb.html、ccc.htmlについて、

HTML

1 <div class="submenu"> 2 <h4><li><a href="aaa.html">aaa1</a></li></h4> 3 <li><a href="bbb.html">bbb1</a></li> 4 <li><a href="ccc.html">ccc1</a></li> 5 </div>

の部分を、

HTML

1 <div class="submenu"></div>

に置き換える。(中身を削除する)
削除したものはhtmlファイルとしてどこかに置いておく。(ここでは/parts/submenu.htmlと仮定する)
当然、/parts/submenu.htmlは以下のようになる。

HTML

1 <h4><li><a href="aaa.html">aaa1</a></li></h4> 2 <li><a href="bbb.html">bbb1</a></li> 3 <li><a href="ccc.html">ccc1</a></li>

あとは、aaa.html、bbb.html、ccc.htmlにて共通で読み込むJavaScriptにて、<div class="submenu"></div>に/parts/submenu.htmlの内容をロードするajax処理を書く。
簡単のためjQueryを用いると、以下のようになる。

JavaScript

1$(function() { 2 $('.submenu').load('/parts/submenu.html'); 3});

ddd.htmlを追加する際は/parts/submenu.htmlを編集すればよく、aaa.html、bbb.html、ccc.htmlをいじる必要はない。


その他の方法として、サーバーサイドで行う(phpやSSIなどなど…)、
静的サイトジェネレータを使う、
などがあります。
静的サイトジェネレータを検討される場合は、StaticGenというサイトにほぼ網羅されています(Python製のものもたくさんリストされています)ので参考にしてみてください。

投稿2020/03/18 20:50

shinji709

総合スコア805

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cesolution

2020/03/18 23:38

解決済のところ、丁寧なご回答をいただき誠にありがとうございます。正に私の知りたかった内容で、非常に分かりやすかったです。また参考となるサイトもご紹介いただきありがとうございます。大変助かりました。
guest

0

書籍にて調べてみます。良い方法が無い場合は、Pythonでテキスト操作として挿入することを考えてみます。

投稿2020/03/17 14:29

編集2020/03/17 14:33
cesolution

総合スコア217

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

上記のリンクについてはテンプレートのようなページを作っておいて、上記のリンク用の列は、そのページに記載されている内容を読みに行くといったような設定は可能でしょうか?

この質問だと、「可能です」が回答になります。

投稿2020/03/17 14:21

kei344

総合スコア69606

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cesolution

2020/03/17 14:29

ご回答ありがとうございます。もう少し自分で調べてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問