<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>hash</title> <style> * { margin: 0; padding: 0; list-style: none; } .tab { width: 300px; } .tab-choose { width: 300px; height: 40px; } .tab-choose li { float: left; width: 100px; line-height: 40px; box-sizing: border-box; border: 1px solid #000; border-right: none; text-align: center; } .tab-choose li:last-child { border-right: 1px solid #000000; } .tabCur { background: black; color: #fff; } .tab-cont { width: 298px; height: 200px; border: 1px solid #000; } .page { display: none; } .page.cur { display: block; } </style> </head> <body> <div class="tab"> <div id="tab" class="tab-choose"> <ul> <li class="tabCur">選擇一</li> <li>選擇二</li> <li>選擇三</li> </ul> </div> <ul class="tab-cont"> <li id="page1" class="page cur">內容一</li> <li id="page2" class="page">內容二</li> <li id="page3" class="page">內容三</li> </ul> </div> </body> <script> window.onload = function () { var nav = document.getElementById('tab'); var navLi = nav.getElementsByTagName('li'); for (var i = 0, len = navLi.length; i < len; i++) { (function (i) { navLi[i].onclick = function () { //點擊nav中的li,改變hash值 for (var j = 0;j<navLi.length;j++){ navLi[j].className = ''; } location.hash = 'page' + (i + 1); this.className='tabCur' } })(i); } location.hash = 'page1'; //每次頁面從新加載時都回到page1 var oldHash = location.hash; window.onhashchange = function () { var newHash = location.hash; var oldPage = document.querySelector(oldHash); var newPage = document.querySelector(newHash); oldPage.classList.remove('cur'); newPage.classList.add('cur'); oldHash = newHash; }; } </script> </html>