DOM和BOM
window
所有的对象或者属性,在访问的时候都必须有前缀
window是所有对象的祖宗,凡是省略前缀的对象,默认它的前缀就是window
只要是全局变量,它的前缀就是window
var i = 123;var fun = function(){var i = 666;console.log(window.i); //123}window.fun();
三个弹出框
1、alert:将内容打印至弹出框上;
alert("确认要付款嘛?");
2、prompt([提示信息],[默认值]):返回一个字符串;
var x = prompt("请输入数据",666);console.log(x+1); //6661
3、window.confirm([提示信息]):返回值为boolean
var flag = window.confirm("确认要付款嘛?");console.log(flag); //点击确定会打印true;点击取消会打印flase;
两个定时器:
1、循环定时器:setInterval clearInterval(执行的函数,时间间隔); ——祥见day8 02-日期Date
2、延时定时器:setTimeout() 设置延时定时器
clearTimeout() 取消延时定时器
见第九天——延时定时器案例;
onload:延迟加载,页面全部加载完毕后,在执行的代码
<script>window.onload = function(){var oBox = document.getElementById("box");console.log(oBox.innerHTML);}</script><body><p id="box">123</p></body>
location:地址对象
console.log(location.href); //打印当前页面的地址;location.href = "http://www.4399.com"; //修改当前页面地址location.replace("http://www.baidu.com"); //修改当前页面地址location.reload(); //刷新页面
点击按钮跳转页面案例:见第九天——location地址对象
document:
1、document.write的特点:
(1)字符串解析:能解析成HTML元素的字符串,就会按照HTML元素的功能执行效果
document.write("123");document.write("<br>");document.write("456");
(2)在与事件连用时,会直接覆盖原页面;
<body><button type="button" id="btn">点击</button></body><script>var oBtn = document.getElementById("btn");oBtn.onclick = function(){document.write("嘿嘿嘿");}</script>
2、找对象的六种方法9
(1)document.getElementById(id名):返回id所对应的单个对象;
<div id="box"></div>var oBox = document.getElementById("box");
(2)document.getElementsByTagName(标签名):返回标签名相同的所有元素,存入数组
中;
<ul><li></li><li></li><li></li></ul>var oLis = document.getElementsByTagName("li");oLis[0].style.backgroundColor = color; //把颜色赋值给第一个li
(3)document.getElementsByClassName(类名):返回类名相同的所有元素,存入数组中
<input type="text" value="123" class="txt"></br><input type="text" value="456" class="txt"></br><input type="text" value="777" class="txt"></br><input type="text" value="888" class="txt"></br>var oTexts = document.getElementsByClassName("txt");for(var i=0; i<oTexts.length; i++){console.log(oTexts[i].value);}
(4)document.getElementsByName(name):返回name相同的所有元素,存入数组中
<input type="text" value="123" name="t"/></br><input type="text" value="456" name="t"/></br><input type="text" value="777" name="t"/></br><input type="text" value="888" name="t"/></br>var oTexts = document.getElementsByName("t");
(5)document.querySelector(选择器):选择器,返回选择器对应的单个元素(标签,类,id)
<p>123</p><span id="s">666</span><div class="box">963</div>var oP = document.querySelector("p");console.log(oP.innerHTML);var oSpan = document.querySelector("#s");console.log(oSpan.innerHTML);var oDiv = document.querySelector(".box");console.log(oDiv.innerHTML);
(6)document.querySelectorAll():选择器,返回选择器对应的多个元素(标签,类)
<input type="text" value="123" class="txt"></br><input type="text" value="456" class="txt"></br><input type="text" value="777" class="txt"></br><input type="text" value="888" class="txt"></br>var oTexts = document.querySelectorAll(".txt");
history:(见第九天——history)
(1)back() 加载 history 列表中的前一个 URL。
(2)forward() 加载 history 列表中的下一个 URL。
(3)go() 加载 history 列表中的某个具体页面,或者要求浏览器移动到指定的页面数量(负数为后退,正数为前进)
DOM

1、根据层次关系访问节点: (包括文本和元素)
(1)firstChild 返回节点的第一个子节点,最普遍的用法是访问该元素的文本节点
(2)lastChild 返回节点的最后一个子节点
(3)nextSibling 下一个节点
(4)previousSibling 上一个节点
2、通过层级关系访问元素节点:
(1)firstElementChild 返回节点的第一个子节点,最普遍的用法是访问该元素的文本节
点
(2)lastElementChild 返回节点的最后一个子节点
(3)nextElementSibling 下一个节点
(4)previousElementSibling 上一个节点
<body><p>你好!</p><ul><li>1</li><li>2</li><li>3</li><li>4</li></ul></body>var str = document.body.firstElementChild.nextElementSibling.firstElementChild.nextElementSibling.innerHTML;console.log(str); //2
3、节点类型的判断 nodeType
元素节点返回1
文本节点返回3
<body><p>你好!</p></body>var oP = document.querySelector("p");console.log(oP.nodeType); //1console.log(oP.firstChild.nodeType); //3
4、节点的插入:(案例:见第九天——节点的插入)
(1)创建元素:document.createElement(标签名):返回一个创建的HTML元素;
(2)在父元素上追加子元素:父元素.appendChild(子元素):将子元素挂至父元素上;
<script type="text/javascript">var oH1 = document.createElement("h1");oH1.innerHTML = "静夜思";document.body.appendChild(oH1);var oP1 = document.createElement("p");oP1.innerHTML = "窗前明月光";document.body.appendChild(oP1);</script>
与这个效果一致:
5、节点的删除:(案例:见第九天——节点的删除)
目标节点.remove();
<body><div id="box">嘿嘿嘿</div></body>var oBox = document.getElementById("box");oBox.remove();
动态创建表格
见第十天——动态创建表格案例
this是函数体内的内置对象
this在与事件连用时,this代表操作的元素本身
oDel.onclick = function(){this.parentNode.remove();}
childNodes和children
1、父节点.childNodes:返回父节点对应的所有子节点,包含文本节点和元素节点,返回一个数组;
<body><ul><li>1</li><li>2</li><li>3</li></ul></body>var oUl = document.querySelector("ul");var oLis = oUl.childNodes;//删除文本节点for(var i=0; i<oLis.length; i++){if(oLis[i].nodeType == 3){oLis[i].remove();}}for(var i=0; i<oLis.length; i++){console.log(oLis[i].innerHTML); //1 2 3}
2、父节点.children:返回父节点对应的所有子节点,只包含元素节点,返回一个数组;
<body><ul><li>1</li><li>2</li><li>3</li></ul></body>var oUl = document.querySelector("ul");var oLis = oUl.children;for(var i=0; i<oLis.length; i++){console.log(oLis[i].innerHTML); //1 2 3}
innerText、outerHTML和innerHTML

(1)innerText:打印文本的内容,不包含任何标签;
(2)outerHTML:打印包含自身标签的所有内容;
(3)innerHTML:该标签中的所有内容;
<div id="box">我是<span>隔壁王叔叔</span></div>var oDiv = document.querySelector("#box");//1、innerTextconsole.log(oDiv.innerText); //我是隔壁王叔叔//2、outerHTMLconsole.log(oDiv.outerHTML); //全部打印//3、innerHTMLconsole.log(oDiv.innerHTML); //我是<span>隔壁王叔叔</span>
使用innerHTML添加元素:
<body><ul></ul></body>var oUl = document.querySelector("ul");oUl.innerHTML = "<li>heihei</li>";oUl.innerHTML += "<li>xixi</li>"for(var i=0; i<10; i++){oUl.innerHTML += "<li class='test'>"+i+"</li>";}
属性和样式的读写
1、属性的读和写:
(1)通过打点的方式;
<body><div id="box"></div></body>var oBox = document.querySelector("#box");//写oBox.id = "heihei";//读console.log(oBox.id); //heihei
(2)通过getAttribute / setAttribute:
<body><div id="box"></div></body>var oBox = document.querySelector("#box");//写oBox.setAttribute("id","haha");//读console.log(oBox.getAttribute("id")); //haha
2、为元素添加自定义属性
(1)通过打点的方式
<body><div id="box"></div></body>var oBox = document.querySelector("#box");oBox.a = "hehe";console.log(oBox.a); //hehe
(2)通过getAttribute / setAttribute
<body><div id="box"></div></body>var oBox = document.querySelector("#box");oBox.setAttribute("b","yingyingying");console.log(oBox.getAttribute("b")); //yingyingying
3、样式的读和写:
(1)行内样式的读写:
<body><div id="box" style="color: red;"></div></body>var oBox = document.querySelector("#box");//写oBox.style.color = "blue";//读console.log(oBox.style.color); //blue
(2)非行内样式的读写:
<style type="text/css">#box1{font-size: 22px;}</style><body><div id="box1"></div></body>var oBox1 = document.querySelector("#box1");//写oBox1.style.fontSize = "100px";//读console.log(getComputedStyle(oBox1,false)["fontSize"]); //100px
insertBefore
父节点.insertBefore(目标节点,参照节点):将目标节点插入到参照节点之前
<body><ul><li>1111</li><li>2222</li><li>3333</li></ul><button type="button">添加</button></body>var oBtn = document.querySelector("button");var oUl = document.querySelector("ul");oBtn.onclick = function(){var oLi = document.createElement("li");oLi.innerHTML = "晶晶";oUl.insertBefore(oLi,oUl.children[2]);//将oLi插入到<li>3333</li>之前// oUl.insertBefore(oLi,null); //将oLi插入到<li>3333</li>之后}

offsetTop

<style type="text/css">#box{width: 200px;height: 100px;position: absolute;left: 200px;top: 200px;background-color: deepskyblue;}</style><body><div id="box"></div></body>var oBox = document.querySelector("#box");//写 写必须是以px为单位的字符串oBox.style.width = 300 + "px";oBox.style.height = "500px";oBox.style.left = "400px";oBox.style.top = "600px";//读 offset相关的属性只能读,返回的是数字console.log(oBox.offsetWidth); //数字 300console.log(oBox.offsetHeight); //数字 500console.log(oBox.offsetLeft); //数字 400console.log(oBox.offsetTop); //数字 600console.log(getComputedStyle(oBox,false)["width"]); //字符串 300pxconsole.log(getComputedStyle(oBox,false)["height"]); //字符串 500pxconsole.log(getComputedStyle(oBox,false)["left"]); //字符串 400pxconsole.log(getComputedStyle(oBox,false)["top"]); //字符串 600px
获取滚动条高度:兼容写法
非IE IE<br />var _top = document.documentElement.scrollTop || document.body.scrollTop;
<style type="text/css">body {height: 1000px; //使页面出现滚动条}</style><script type="text/javascript">window.onscroll = function(){var _top = document.documentElement.scrollTop || document.body.scrollTop;console.log(_top); //拖动滚动条时会打印滚动条的高度}</script>
<style type="text/css">body {height: 1000px;}#btn {position: absolute;top: 900px;left: 0;}</style><body><button type="button" id="btn">回到顶部</button></body>var oBtn = document.querySelector("#btn");oBtn.onclick = function(){document.documentElement.scrollTop = document.body.scrollTop = 0;} //点击按钮(回到顶部)就会回到顶部

