トップのお知らせ部分に別ページの新着情報だけを表示する【jQuery】

コーディング

WordPressを導入していない静的サイトで、別ページのお知らせ一覧の最新の数件だけを取得して、トップのお知らせ(NEWS)部分に表示させたい。

そんな機会があったのでjQueryだけで実装しました。

書き方

①TOPページのHTMLに、お知らせ一覧ページから読み込んだテキストを表示するエリアを記述

<div id="top-info"></div>

jQueryファイルを読み込んで、下記のように書く

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>

<script>
$(function() {
	$.ajax({
		url: './news/index.html' //読み込むファイルを指定
	})
	.then(
		// 通信成功時の処理
		function(html) {
			$(html).find('#news-area').each(function(){ //外部HTMLの読み込みたい部分を指定
				$('#top-info').html($(this).html()); //読み込んだ外部HTMLを表示するエリアを指定
				return false;
			});
			$('dl dt:gt(0), dl dd:gt(0)').remove(); //2件目以降の dt,dd を削除
		});
});
</script>

お知らせ一覧ページのHTML

<div id="news-area">
	<dl>
		<dt>2020.04.00</dt>
		<dd>これはリスト1です…テキストテキストテキスト…</dd>
		<dt>2020.03.00</dt>
		<dd>これはリスト2です…テキストテキストテキスト…</dd>
		<dt>2020.02.00</dt>
		<dd>これはリスト3です…テキストテキストテキスト…</dd>
	</dl>
</div>

今回は最新の1件だけを表示していますが、最新の2件を表示させたかったら、最後の「gt(0)」を「gt(1)」に変更します。

デモはこちら

参考記事:
・jQueryで外部にあるHTMLを読み込む|ウェブラボスタッフブログ
https://www.weblab.co.jp/staff/html/4649.html

・おじさんが若い時はね$.ajax()のオプションでsuccessとかerrorとか指定していたんだよ(追憶)
https://qiita.com/tonkotsuboy_com/items/0722ad92f370ab0c411b