1. 程式人生 > >jquery提取頁面公共內容(如header,footer等)引入其他頁面【$('為引入內容建立的div的id名').load('引入的頁面l')】

jquery提取頁面公共內容(如header,footer等)引入其他頁面【$('為引入內容建立的div的id名').load('引入的頁面l')】

在做專案時,通常頁面header部分是相同的,但如果複製貼上,程式碼量很大而且很冗餘,因此可以像vue一樣可以將頁面拆分成不同的元件,而header就是一個元件,可以單獨提取出來,最後再把不同元件合併呈現不同的頁面;

具體怎麼把頁面的一部分提取出來然後引入到需要的頁面,只需要使用jquery的load即可,先來看一下load是什麼,怎麼用

 這是jquery文件的截圖,有時學到新的知識看視訊瞭解可能理解更好,但時間長,這時看看官方文件jquery API中文文件就是不錯的選擇,可以快速瞭解這個屬性和用法,移動端的w3c就非常好用,現在每天早上讓自己看半個小時文件,當做前端早讀課啦~

以例子來演示:

剛開始想header.html到底光寫body裡面的元素,從class為header開始寫還是先搭建html結構,後來想既然是html檔案,不搭建html基本結構怎麼知道是html檔案,而且css也沒有辦法引入,總不能直接<style></style>或者<link>也得瀏覽器知道寫的是什麼

<!--header.html-->
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>header</title>	
	<link rel="stylesheet" href="reset.css">
	<style type="text/css">
	#header{
		height: 45px;
		line-height: 45px;
		background: #000;
		color: #fff;
		padding: 0 70px;
	}
	#header .logo{
		float: left;
		background: url(monkey.jpg) no-repeat left center;
		background-size: 30px 30px;
		padding-left: 35px; 
	}
	#header .headnav{
		float: right;
	} 
	#header .headnav ul li{
		float: left;
		width: 80px;
		margin-left: 10px;
	}
	#header .headnav ul li a{
		text-decoration: none;
		color: #fff;
	}
	</style>
</head>
<body>
	<div id="header">
		<div class="logo">悟空音樂</div>
		<div class="headnav">
			<ul>
				<li><a href="header.html">nav one</a></li>
				<li><a href="javascript:;">nav two</a></li>
				<li><a href="javascript:;">nav three</a></li>
				<li><a href="javascript:;">nav four</a></li>
				<li><a href="javascript:;">nav five</a></li>
			</ul>
		</div>
	</div>
</body>
</html>

看一下這個頁面的效果

接下來就是如何吧這個header.html檔案引入到index.html中,注意因為用到jquery所以必須先引入jquery的依賴

<!--index.html-->
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>index引入head公共樣式</title>
</head>
<body>
	<div class="header"></div>
	<h1 class="container">因為我是大眾臉所以頭部可以刷臉,哪個頁面都可以顯示</h1>

	<script src="jquery-3.2.1.min.js"></script>
	<script>
		$(document).ready(function() {
			$('.header').load('header.html')
		})
	</script>
</body>
</html>

再來看一下結果吧!