<!DOCTYPE html>
<!--
一个完整的javaScript可以分为三个部分:
ECMAScript(核心);
DOM(文档对象模型); 是Document Object Model的一个简写
BOM(浏览器对象模型);
Document:可以理解为整个web加载的页面
元素节点对象
-->
<html>
<head>
<meta charset="UTF-8">
<meta name="description" content="">
<meta name="keywords" content="">
<title>Examples</title>
<style type="text/css">
</style>
<script type="text/javascript">
</script>
</head>
<body>
<div id="box">这里是一个div标签</div>
<h1>这里是一个h1标签</h1>
<ul id="list">
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</body>
</html>
节点树图
获取元素节点对象的方法
<!DOCTYPE html>
<!--
// document.getElementById("div1");
// 页面文档 下面的 获取元素 通过 id名
// 1:获取谁下面的元素
// 2:通过什么方式来获取
-->
<html>
<head>
<meta charset="UTF-8">
<meta name="description" content="">
<meta name="keywords" content="">
<title>Examples</title>
<style type="text/css">
</style>
<script type="text/javascript">
window.onload = function(){
//var oDiv = document.getElementById("div1"); //通过id名获取一个元素节点对象;
// var oLi = document.getElementsByTagName("li"); //通过标签名来获取元素节点对象;
// alert(oLi.length);
// alert(oLi[0].innerHTML); //oLi[0].innerHTML 获取对象的内容
// alert(oLi[1].innerHTML);
// alert(oLi[2].innerHTML);
//alert(oLi instanceof Array); //判断oLi是不是数组一个实例 打印false 说获取的oLi不是一个真正的数组,为一个伪数组
//通过有指定名称的元素节点对象
// var obj = document.getElementsByName("pp");
// alert(obj.length);
// alert(obj[0].innerHTML);
// alert(obj[1].innerHTML);
//***********************************************************************************************************************
//元素节点的属性
// var oDiv = document.getElementById("div1");
//innerHTML; 获取元素节点对象的内容
//tagName; 获取元素节点对象的标签名
// alert(oDiv.innerHTML);
// alert(oDiv.tagName);
//***********************************************************************************************************************
// var oDiv = document.getElementById("div1");
//获取属性值;
// alert(oDiv.id);
// alert(oDiv.title);
//设置属性值
// oDiv.id = "box"; //id名不建议随便改动
// oDiv.title = "小红";
//添加属性
// oDiv.an = "大家好"; //页面标签中不显示,但是这个属性是可以访问到的
// alert(oDiv.an);
//***********************************************************************************************************************
var oDiv = document.getElementById("div1");
// setAttribute(); 设置元素节点对象的属性 格式:setAttribute(属性名,属性值); 可以直接添加页面的标签中
oDiv.setAttribute("an","大家好"); //setAttribute()设置的属性 要用getAttribute()方法来获取
// getAttribute(); 获取元素节点对象的属性值
// var str = oDiv.getAttribute("an");
// alert(str);
// removeAttribute() 删除元素节点对象的属性
oDiv.removeAttribute("an");
var str = oDiv.getAttribute("an");
alert(str);
//***********************************************************************************************************************
}
</script>
</head>
<body>
<div id="div1" title="胖胖">我是一个div</div>
<div name="pp">我也是一个div标签</div>
<p name="pp">我是一个p标签</p>
<ul id="list">
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</body>
</html>
class属性
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="description" content="">
<meta name="keywords" content="">
<title>Examples</title>
<style type="text/css">
.div1{
background: red;
}
.div2{
background: blue;
}
</style>
<script type="text/javascript">
window.onload = function(){
var oDiv = document.getElementsByTagName("div")[0];
//alert(oDiv.class); //打印undefined
//alert(oDiv.className); //打印div1 获取class值用.className
oDiv.className = "div2";
}
</script>
</head>
<body>
<div class="div1">1111</div>
</body>
</html>
样式操作
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="description" content="">
<meta name="keywords" content="">
<title>Examples</title>
<style type="text/css">
#div2{
width: 150px;
height: 100px;
background: green;
}
</style>
<script type="text/javascript">
window.onload = function(){
// var oDiv = document.getElementById("div1");
//获取样式值
// var an = oDiv.style.width;
//alert(an); //打印300px
// alert(oDiv.style["width"]);
// alert( oDiv.style.font-size ); //报错
// alert( oDiv.style.fontSize ); //打印2em;
//alert( oDiv.style["font-size"] ) //打印2en
//****************************************************************************************************
//设置样式值
// var oDiv = document.getElementById("div1");
// oDiv.style.width = "500px";
// oDiv.style.fontSize = "6em";
//****************************************************************************************************
//获取style标签里的样式
var oDiv2 = document.getElementById("div2");
// alert( oDiv2.style.width ); //打印空白 没有获取到
// alert( window.getComputedStyle(oDiv2,null).width ); //不兼容IE8 会报错
// alert( oDiv2.currentStyle.width ); //能兼容IE8 不兼容火狐与谷歌
// alert(oDiv2.currentStyle); //在火狐与谷歌在打印undefined 但不报错
//兼容处理
// if(oDiv2.currentStyle){
// alert(oDiv2.currentStyle.width);
// }else{
// alert( window.getComputedStyle(oDiv2,null).width );
// }
//获取样式封装
function getStyle(obj,attr){
if(obj.currentStyle){
return obj.currentStyle[attr];
}else{
return window.getComputedStyle(obj,null)[attr];
}
}
var str = getStyle(oDiv2,"backgroundColor");
alert(str);
}
</script>
</head>
<body>
<div id="div1" style="width:300px; height:200px; background:red; font-size:2em">123</div>
<div id="div2">我是一个div</div>
</body>
</html>
选项卡Demo
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="description" content="">
<meta name="keywords" content="">
<title>Examples</title>
<style type="text/css">
*{
padding: 0px;
margin: 0px;
}
#warp{
width: 302px;
height: 250px;
border: 1px solid black;
position: relative;
margin: 100px auto;
}
#list li{
list-style: none;
width: 100px;
height: 40px;
line-height: 40px;
text-align: center;
float: left;
font-size: 1.2em;
background: red;
border-right: 1px solid black;
}
#list li:last-child{
border : hidden;
}
#list .col{
background: green;
}
#div1 div{
width: 100%;
height: 210px;
background: #ccc;
line-height: 210px;
text-align: center;
position: absolute;
font-size: 2em;
top: 40px;
display: none;
}
</style>
<script type="text/javascript">
window.onload = function(){
var oList = document.getElementById("list");
var oLi = oList.getElementsByTagName("li");
var obj = document.getElementById("div1");
var oDiv = obj.getElementsByTagName("div");
for(var i = 0; i < oLi.length; i++){
oLi[i].index = i; //给每一个Li添加一个属性什么索引值;
oLi[i].onclick = function(){
//alert(this.index);
//alert(this.innerHTML); //当前点击的对象
for(var j = 0; j < oLi.length; j++){
oDiv[j].style.display = "none";
oLi[j].className = "";
}
oDiv[this.index].style.display = "block";
this.className = "col";
}
}
}
</script>
</head>
<body>
<div id="warp">
<ul id="list">
<li class="col">java</li>
<li>C++</li>
<li>javaScript</li>
</ul>
<div id="div1">
<div style="display:block">java......</div>
<div>C++......</div>
<div>javaScript......</div>
</div>
</div>
</body>
</html>
Node节点属性
<!DOCTYPE html>
<!--
Node对象
在节点中有元素节点,属性节点,文本节点,
节点对象有三个属性:nodeName, nodeType, nodeValue;
元素节点 nodeName == 元素名 nodeType == 1 nodeValue == null
属性节点 nodeName == 属性名 nodeType == 2 nodeValue == 属性值
文本节点 nodeName == #text nodeType == 3 nodeValue == 文本内容
-->
<html>
<head>
<meta charset="UTF-8">
<meta name="description" content="">
<meta name="keywords" content="">
<title>Examples</title>
<style type="text/css">
</style>
<script type="text/javascript">
window.onload = function(){
//元素节点
// var oDiv = document.getElementById("box"); //获取一个元素节点对象
// alert(oDiv.nodeName); //打印DIV;
// alert(oDiv.nodeType); //打印1;
// alert(oDiv.nodeValue); //打印null
//文本节点;
// var oDiv = document.getElementById("box");
// var obj = oDiv.firstChild //获取div下的第一个子节点
// alert(obj); //打印obj 获取到文本节点
// alert(obj.nodeName); //#text
// alert(obj.nodeType); //打印3
// alert(obj.nodeValue); //打印文本内容
//属性节点
// var oDiv = document.getElementById("box");
// var arr = oDiv.attributes; //获取属性节点集
// alert(arr[0].nodeName); //打印id
// alert(arr[0].nodeType); //打印2
// alert(arr[0].nodeValue); //打印box
}
</script>
</head>
<body>
<div id="box" title="胖胖">我是一个div</div>
</body>
</html>
firstChild与lastChild属性
<!DOCTYPE html>
<!--
firstChild 获取第一个子节点
lastChild 获取最后一个子节点
-->
<html>
<head>
<meta charset="UTF-8">
<meta name="description" content="">
<meta name="keywords" content="">
<title>Examples</title>
<style type="text/css">
</style>
<script type="text/javascript">
window.onload = function(){
var oUl = document.getElementById("list");
// var obj = oUl.firstChild; //获取第一个节点对象,在ie8以下获取到的是第一个元素节点对象
var obj = oUl.firstElementChild; //获取第一个元素节点对象,但是在ie8以下得到的值是undefined,但不报错;
// alert(oUl.firstElementChild); //打印undefined
//兼容处理
var obj = oUl.firstElementChild || oUl.firstChild;
alert(obj.nodeType);
alert(obj.innerHTML);
//lastChild属性与firstChild
}
</script>
</head>
<body>
<ul id="list">
<li>我是第1个Li标签</li>
<li>我是第2个Li标签</li>
<li>我是第3个Li标签</li>
<li>我是第4个Li标签</li>
<li>我是第5个Li标签</li>
</ul>
</body>
</html>