js 标签属性与导航
导航标签的方法:
一 , 全局导航:
1.通过by id导航
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="div1">
<div id="div2">hello div</div>
<p id="p1">hello p</p>
</div>
</body>
<script>
var ele=document.getElementById("div1").firstElementChild; //获得element div1的标签下的第一个element标签;div
alert(ele.nodeName); // alert name 属性 p
alert(ele.nodeType); // alert type 属性 1
alert(ele.nodeValue); // alert value 属性 null
var ele1=document.getElementById("div2").nextElementSibling; //获得 element div1 的下一个兄弟标签; p = nodeName
var ele2=document.getElementById("p1").previousElementSibling; //获得 element p1 的上一个兄弟标签; div = nodeName
var ele3=document.getElementById("div1").lastElementChild; //获得 element div1父亲下的子标签的最后一个; p = nodeName
var ele4=document.getElementById("div2").parentElement; //获得 element div2的子标签的父级标签; div = nodeName
var ele5=document.getElementById("div1").children; //获得 element div1 下的所有标签,并组成一个数组;element;
alert(ele5.length) //获得 div1下的element 标签个数; 2
alert(ele5[0].nodeName) //获得 div1下的数组第一个标签的名字;div
for (var num=0;num<ele5.length;num++){
alert(ele5[num].nodeName)
} //for循环出数组ele5里的标签名 div p
</script>
</html>
===============================================================================================================
2.通过by class导航
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="div1">hi div
<div class="div2">hello div1</div>
<p>hello p!</p>
<div class="div2">hello div2</div>
</div>
<script>
var ele=document.getElementsByClassName("div2")[0]; //找出class叫DIV2的所有标签,并且取这个数组的第一个.<div class="div2">hello div1</div>
var ele1=ele.nextElementSibling; //找出刚才找到的标签的下一个element标签. <p>hello p!</p>
alert(ele1.innerHTML) //打印他的标签的文档 hello p!
</script>
</body>
</html>
=================================================================================================================================================
3.通过by tag导航
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="div1">hi div
<div class="div2">hello div1</div>
<p>hello p!</p>
<p>hello pppp!</p>
<div class="div2">hello div2</div>
</div>
</body>
<script>
var ele=document.getElementsByTagName("p"); //得到叫p标签的所有数组
alert(ele[1].innerHTML); //获取此数组里第2个P标签的文档 hello pppp!
var ele1=document.getElementsByTagName("div"); //得到叫p标签的所有数组
alert(ele1[1].innerHTML); //获得的是 <div class="div2">hello div1</div> 这个标签里的hello div1
alert(ele1[0].innerHTML); //如果要获得hi div 用查找数组第一个是不可能的.因为会把hi div后的所有在此标签里的内容看做文本打出来 ########
</script>
</html>
=================================================================================================================================================
3.通过by name导航
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="div1">hi div
<div class="div2" name="org">hello div1</div>
<p id="P1" name="org">hello p!</p>
<p>hello pppp!</p>
<div class="div2">hello div2</div>
</div>
</body>
<script>
var ele=document.getElementsByName("org"); //得到name叫org标签的所有数组
alert(ele[0].innerHTML); // 找出第一个org的标签的文档 hello div1
alert(ele[1].innerHTML); // 找出第一个org的标签的文档 hello p
</script>
</html>
===================================== 注: 只有id这个属性是唯一的 ,查找出来的不是数组,其他的方法都需要用数组分析数据 !!=======================================
二, 局部导航
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div>hello div
<p>hello p</p>
<div class="div1">hello div1
<div>hello div2</div>
</div>
</div>
<script>
var ele=document.getElementsByClassName("div1")[0]; // 获得 class 叫div下的的标签数组的第一个 全局查找
alert(ele.innerHTML); // 得到的是标签里包含的所有内容 包括子级标签!
var inner=ele.getElementsByTagName("div")[0]; //获得里面的第一个div标签 局部查找
alert(inner.innerHTML); // 获得的是 hello div2
</script>
</body>
</html>
============================ 注: 局部查找这个例子里用的是CLASS属性,还可以用的是getelementbytagname, byname 和 byid 都不能用 !==================================================