Js_DOM
来源:互联网 发布:复式记账软件 编辑:程序博客网 时间:2024/06/07 13:03
简介
1.简介DOM: document Object Model 文档对象模型 DOM 是针对HTML文档的一个API应用程序接口DOM给了一个层次话的节点树DOM 允许开发人员对页面的某一部分进行 超找,修改,删除,添加等功能DOM 操作HTML(分4个页面)1.JS修改所有的HTML元素2.JS修改所有的HTML属性3.JS修改所有的HTML样式4.JS能够对页面所有的事件作出反应
DOM查找
<p id="idP"></p><span class="mySpan"></span> <a href="" name="myA"></a><div></div><div></div><div class="myDiv"> <p></p> <p></p></div>document.getElementById("idP");document.getElementsByClassName("mySpan");通过class的名字获取,即使结果有一个,返回的也是 数组document.getElementsByName("myA");document.getElementsByTagName("div");利用CSS选择器获取一个标签(返回值是数组)document.querySelectorAll(""); id class 取值 后三种方式,只能在IE8+ 使用
DOM节点
<div>我是标签</div><!--我是注释--><script type="text/javascript">节点 :由标签,文本(汉字、回车),注释 组成console.log(document.body.childNodes);注意: 在一起的文字和回车算一个文本节点各个节点类型的值:(使用节点对象 .nodeType)1: 代表 标签 -> (div, p, script 等等)各个节点英文名3: 代表 文本 -> text8: 代表 注释 -> comment
获取节点
<div id="myDiv">我是DIV</div>hh<!--我是地球人--><p>上面说的是假的</p><script type="text/javascript">//1.childNodes 获取所有儿子节点var a = document.body.childNodes;//console.log(a);//2.children 获取所有儿子标签节点(不包括文本和注释节点) 最常用var brr = document.body.children;//console.log(brr);//3.nextSibling 获取下一个兄弟节点var myDiv = document.getElementById("myDiv");var nextNode = myDiv.nextSibling;//console.log(nextNode);--------------------------------------------nextSibling属性与nextElementSibling属性的差别: nextSibling(包括文本节点、注释节点即回车、换行、空格、文本等等); nextElementSibling属性只返回元素节点之后的兄弟元素节点(不包括文本节点、注释节点); ----------------------------//4.previousSibling 获取上一个兄弟节点//5.parentNode 获取父级标签节点 最常用var fatherNode = myDiv.parentNode;//console.log(fatherNode);//6.firstChildvar result = document.body.firstChild;//console.log(result);//7.lastChild 最后一个子节点//8.nodeTyoe 最后一个子节点//9.nodeName 节点名字(标签大写,文本小写)var nName = document.body.firstChild.nodeName;console.log(nName);if(nName == "INPUT"){ alert(123);}
增删改节点
<div id="myDiv"> <p>孙子1号</p> <p>孙子2号</p></div><script type="text/javascript"> // 1.createElement("div") 创建标签 document.createElement("div"); //2.createTextNode 创建文本节点 document.createTextNode("啊啊啊") //3.appendChild() 向调用的标签的内部的末尾追加一个节点 var te = document.createTextNode("te"); //document.body.appendChild(te); //4.insertBefore(node, targetNode) 向targetNode 前面兄弟位置插入一个新的node var myDiv = document.getElementById("myDiv"); var theP = document.createElement("p"); document.body.insertBefore(theP,myDiv); //注意: 由targetNode的父级调用insertBefore方法 //5.替换 replaceChild(newNode, oldNode) 把oldNode 替换成newNode var myDiv = document.getElementById("myDiv"); var theImg = document.createElement("img"); theImg.src = "../Day03for循环/王俊.jpg"; //document.body.replaceChild(theImg, myDiv); //由oldNode的父级调用replaceChild 方法 //6.removeChild 删除某一个子节点 //7.cloneChild var myDiv = document.getElementById("myDiv"); var cloneDiv = myDiv.cloneNode(true); //浅克隆(复制):只是复制标签本身,不会复制这个标签的DOM
操作DOM属性
<style type="text/css"> .myDiv{ width: 200px; height: 200px; background: firebrick; }</style></head><body> <div id=""></div><script type="text/javascript"> //1. setAttribute(name, value) //name 属性名称 //value 赋予的值 var d = document.getElementsByTagName("div")[0]; d.setAttribute("class","myDiv"); //2.getAttribute(name) console.log(d.getAttribute("class")); //3.removeAttribute(name) 删除某个属性 d.removeAttribute("class"); console.log(d.getAttribute("class"));</script></body>
利用属性操作方法,把第一张 赋予 第二张<img src="001.jpg" id="myImg" /><img src="" id="secondImg"/><script type="text/javascript">var first = document.getElementById("myImg");var second = document.getElementById("secondImg");a = first.getAttribute("src"); second.setAttribute("src", a);</script>
getAttribute和点访问的区别
<img src="../Day05冒泡/home/0.jpeg" id="myImg"/><script type="text/javascript"> var theImg = document.getElementById("myImg");// theImg.setAttribute("a","abc");// theImg.a = "abc"; console.log(theImg.className); //对于标签原有的属性进行设置或者修改, 不管是 用点还是getAttribute 都能获取 //对于标签原来没有的属性,点设置的属性 点可以读出来 点不能和前者混合使用 //实际开发 多用点</script>
获取非行间样式的方法
<style type="text/css"> #myDiv{ width: 100px; height: 100px; background-color: green; }</style></head><body> <div id="myDiv"></div><script type="text/javascript"> var myDiv = document.getElementById("myDiv"); var result = getComputedStyle(myDiv, null).width;// 可以获取CSS内任何方法 //1.非IE浏览器 //参数1 :标签对象 //参数2 :伪类 //getComputerStyle(对象, 伪类).属性名 console.log(result); //2.IE浏览器 //对象.currentStyle.属性名 var res = myDiv.currentStyle.width; console.log(res);</script></body>
图片预加载
图片预加载:在有很多图片的时候,如果在一起用户需要等待的时间比较长, 给用户的感觉不是很好,所以我们要让【图片预先加载到内存中】, 如果需要显示在页面上,直接显示<script type="text/javascript">//1.利用img的src属性,预加载图片到内存当中 var img = document.createElement("img"); img.src = "J147-67-大幅风景19.jpg";//2.当图片加载完毕会触发onload方法 img.onload = function(){ var theImg = document.createElement("img");//3.把图片真正加载在页面上 theImg.src = "J147-67-大幅风景19.jpg"; document.body.appendChild(theImg);}</script>
标题
这里写代码片
0 0
- js_dom
- JS_DOM
- JS_DOM
- Js_DOM
- js_DOM
- 0320JS_DOM
- Js_Dom(1)__Dom基础<对象和document>
- Js_Dom(2)__Dom基础<方法(重点)>
- Js_Dom(5)__Dom基础<事件event>
- Js_Dom(8)__Dom基础<画布canvas>
- Js_Dom(9)__Dom基础<Ajax请求>
- Js_Dom(3)__Dom基础<节点常用属性方法和table>
- Js_Dom(4)__Dom基础<回流与重绘>
- Js_Dom(7)__Dom基础<Dom的12种节点(转载)>
- Js_Dom(6)__Dom基础<Bom,window,计时器以及空野指针>
- 线性顺序表的创建与使用
- Java从入门到精通阅读笔记(第4版)14
- SURF算法原理
- Hive数据导出三种方式(四)
- Unity3D学习笔记(1)
- Js_DOM
- L1-025. 正整数A+B
- 方法重载overload与重写override的区别
- linux下的粘滞位和find命令
- shell脚本学习
- ducci序列 Uva1594
- google 分屏 横屏模式 按home键界面错乱故障分析(三) 分屏的退出过程分析
- Python Socket编程
- linux shell 文本排序与统计