過 HTML DOM,您能夠使用節點關系在節點樹中導航。
HTML DOM 節點列表
getElementsByTagName() 方法返回節點列表。節點列表是一個節點數組。
下面的代碼選取文檔中的所有 <p> 節點:
實例
varx=document.getElementsByTagName("p");
可以通過下標號訪問這些節點。如需訪問第二個 <p>,您可以這么寫:
y=x[1];
嘗試一下 ?
注意:
下標號從 0 開始。
HTML DOM 節點列表長度
length 屬性定義節點列表中節點的數量。
您可以使用 length 屬性來循環節點列表:
實例
x=document.getElementsByTagName("p");for(i=0;i<x.length;i++){document.write(x[i].innerHTML); document.write("<br>");}
實例解析:
獲取所有 <p> 元素節點
輸出每個 <p> 元素的文本節點的值
導航節點關系
您能夠使用三個節點屬性:parentNode、firstChild 以及 lastChild ,在文檔結構中進行導航。
請看下面的 HTML 片段:
<html><head><metacharset="utf-8"></head><body><p>Hello World!</p><div><p>DOM 是非常有用的!</p><p>這個實例演示了節點的關系。</p></div></body></html>
首個 <p> 元素是 <body> 元素的首個子元素(firstChild)
<div> 元素是 <body> 元素的最后一個子元素(lastChild)
<body> 元素是首個 <p> 元素和 <div> 元素的父節點(parentNode)
firstChild 屬性可用于訪問元素的文本:
實例
<pid="intro">Hello World!</p><script>x=document.getElementById("intro");document.write(x.firstChild.nodeValue);</script>
嘗試一下 ?
DOM 根節點
這里有兩個特殊的屬性,可以訪問全部文檔:
document.documentElement - 全部文檔
document.body - 文檔的主體
實例
<p>Hello World!</p><div><p>DOM 是非常有用的!</p><p>這個實例演示了 <b>document.body</b> 屬性。</p></div><script>alert(document.body.innerHTML);</script>
嘗試一下 ?
childNodes 和 nodeValue
除了 innerHTML 屬性,您也可以使用 childNodes 和 nodeValue 屬性來獲取元素的內容。
下面的代碼獲取 id="intro" 的 <p> 元素的值:
實例
<pid="intro">Hello World!</p><script>txt=document.getElementById("intro").childNodes[0].nodeValue;document.write(txt);</script>
嘗試一下 ?
在上面的例子中,getElementById 是一個方法,而 childNodes 和 nodeValue 是屬性。
lt;!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>導航菜單</title>
<link rel="stylesheet" type="text/css" href="css/nav.css"/>
</head>
<body>
<!--頭部-->
<header>
<div class="container">
<!--導航條-->
<ul class="nav">
<li style="background-color: gold;">
<a href="#">首頁</a>
</li>
<li>
<a href="#">公司概況</a>
<ul class="nav-list">
<li>公司簡介</li>
<li>發展歷程</li>
<li>組織機構</li>
<li>總經理寄語</li>
</ul>
</li>
<li>
<a href="#">公司文化</a>
<ul class="nav-list">
<li>文化理念</li>
<li>員工活動</li>
<li>黨/工/團建設</li>
</ul>
</li>
<li>
<a href="#">公司新聞</a>
</li>
<li>
<a href="#">服務內容</a>
</li>
<li>
<a href="#">法律政策</a>
</li>
<li>
<a href="#">人才招聘</a>
</li>
<li>
<a href="#">聯系我們</a>
</li>
</ul>
</div>
</header>
</body>
</html>
@charset "utf-8";
*{
margin: 0px;
padding: 0px;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>HTML+CSS 二級導航</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
ul,ol{
list-style: none;
}
a{
color: #000;
display: block;
width: 140px;
height: 40px;
text-align: center;
line-height: 40px;
text-decoration: none;
}
/* ******************************************* */
.nav{
width: 100%;
height: 40px;
background-color: skyblue;
}
.nav>ul{
width: 1200px;
height: 40px;
margin: 0 auto;
/* 這個背景色是方便大家伙看的 */
/* background-color: red; */
}
.nav>ul>li{
float: left;
width: 140px;
height: 40px;
/*讓ol(二級導航根據他進行定位 所以li進行相對定位)*/
position: relative;
}
.nav>ul>li>ol{
background-color: skyblue;
position: absolute;
left: 0;
top: 40px;
display: none;/*初始值隱藏*/
}
/* 懸浮的效果 */
a:hover{
color: #fff;
background-color: deepskyblue;
}
.nav>ul>li:hover>a{
color: #fff;
background-color: deepskyblue;
}
.nav>ul>li:hover>ol{
display: block;
}
</style>
</head>
<body>
<div class="nav">
<ul>
<li><a href="">首頁</a></li>
<li>
<a href="">法師</a>
<ol>
<li><a href="">妲己</a></li>
<li><a href="">甄姬</a></li>
<li><a href="">安琪拉</a></li>
<li><a href="">張良</a></li>
</ol>
</li>
<li><a href="">戰士</a></li>
<li>
<a href="">刺客</a>
<ol>
<li><a href="">荊軻</a></li>
<li><a href="">張飛</a></li>
<li><a href="">關羽</a></li>
<li><a href="">黃忠</a></li>
<li><a href="">馬超</a></li>
<li><a href="">趙云</a></li>
<li><a href="">許諸</a></li>
</ol>
</li>
<li><a href="">射手</a></li>
<li><a href="">坦克</a></li>
<li>
<a href="">輔助</a>
<ol>
<li><a href="">蔡文姬</a></li>
<li><a href="">鬼谷子</a></li>
<li><a href="">莊周</a></li>
</ol>
</li>
</ul>
</div>
<p>HTML+CSS 二級導航</p>
</body>
</html>
*請認真填寫需求信息,我們會在24小時內與您取得聯系。