javaWeb学习_05:js的元素操作

来源:互联网 发布:html5网页制作软件 编辑:程序博客网 时间:2024/06/05 23:48
1、案例一:在末尾添加节点第一步:获取到ul标签第二步:创建li标签document.createElement("标签名称")方法第三步:创建文本document.createTextNode("文本内容");第四步:把文本添加到li下面使用 appendChild方法第五步:把里添加到ul末尾使用 appendChild方法2、元素对象(element对象)** 要操作element对象,首先必须要获取到element,- 使用document里面相应的方法获取** 方法*** 获取属性里面的值getAttribute("属性名称")- var input1 = document.getElementById("inputid");//alert(input1.value);alert(input1.getAttribute("value"));*** 设置属性的值input1.setAttribute("class","haha");*** 删除属性input1.removeAttribute("name");** 不能删除value*** 想要获取标签下面的子标签** 使用属性 childNodes,但是这个属性兼容性很差** 获得标签下面子标签的唯一有效办法,使用getElementsByTagName方法- var ul11 = document.getElementById("ulid1");//获取ul下面的子标签//var lis = ul11.childNodes;//alert(lis.length);var lis = ul11.getElementsByTagName("li");alert(lis.length);3、Node对象属性一* nodeName * nodeType* nodeValue* 使用dom解析html时候,需要html里面的标签,属性和文本都封装成对象* 标签节点对应的值nodeType: 1nodeName: 大写标签名称  比如SPANnodeValue: null* 属性节点对应的值nodeType: 2nodeName: 属性名称nodeValue: 属性的值* 文本节点对应的值nodeType: 3nodeName: #textnodeValue: 文本内容4、Node对象的属性二<ul><li>qqqqq</li><li>wwww</li></ul>* 父节点- ul是li的父节点- parentNode- //得到li1var li1 = document.getElementById("li1");//得到ulvar ul1 = li1.parentNode;alert(ul1.id);* 子节点- li是ul的子节点- childNodes:得到所有子节点,但是兼容性很差- firstChild:获取第一个子节点- //获取ul的第一个子节点 id=li1//得到ulvar ul1 = document.getElementById("ulid");//第一个子节点var li1 = ul1.firstChild;alert(li1.id);- lastChild:获取最后一个子节点//得到最后一个子节点var li4 = ul1.lastChild;alert(li4.id);* 同辈节点- li直接关系是同辈节点- nextSibling: 返回一个给定节点的下一个兄弟节点。previousSibling:返回一个给定节点的上一个兄弟节点。- //获取li的id是li3的上一个和下一个兄弟节点var li3 = document.getElementById("li3");//alert(li3.nextSibling.id);alert(li3.previousSibling.id);5、操作dom树** appendChild方法- 添加子节点到末尾- 特点:类似于剪切黏贴的效果** insertBefore(newNode,oldNode)方法- 在某个节点之前插入一个新的节点- 两个参数* 要插入的节点* 在谁之前插入- 插入一个节点,节点不存在,创建1、创建标签2、创建文本3、把文本添加到标签下面- 代码/*1、获取到li13标签2、创建li3、创建文本4、把文本添加到li下面5、获取到ul6、把li添加到ul下面(在<li>貂蝉</li>之前添加 <li>董小宛</li>)*///获取li3 标签var li13 = document.getElementById("li13");//创建livar li15 = document.createElement("li");//创建文本var text15 = document.createTextNode("董小宛");//把文本添加到li下面 appendChildli15.appendChild(text15);//获取到ulvar ul21 = document.getElementById("ulid21");//在<li>貂蝉</li>之前添加 <li>董小宛</li> //insertBefore(newNode,oldNode)ul21.insertBefore(li15,li13);*** 不存在 没有insertAfter()方法** removeChild方法:删除节点- 通过父节点删除,不能自己删除自己- /*1、获取到li24标签2、获取父节点ul标签3、执行删除(通过父节点删除)*///获取li标签var li24 = document.getElementById("li24");//获取父节点//两种方式  1、通过id获取 ; 2、通过属性 parentNode获取var ul31 = document.getElementById("ulid31");//删除(通过父节点)ul31.removeChild(li24);** replaceChild(newNode,oldNode)方法: 替换节点- 不能自己替换自己,通过父节点替换- 两个参数** 第一个参数:新的节点(替换成的节点)** 第二个参数:旧的节点(被替换的节点)- 代码/*1、获取到li342、创建标签li3、创建文本4、把文本添加到li下面5、获取ul标签(父节点)6、执行替换操作 (replaceChild(newNode,oldNode))*///获取li34var li34 = document.getElementById("li34");//创建livar li35 = document.createElement("li");//创建文本var text35 = document.createTextNode("张无忌");//把文本添加到li下面li35.appendChild(text35);//获取ulvar ul41 = document.getElementById("ulid41");//替换节点ul41.replaceChild(li35,li34);** cloneNode(boolean): 复制节点- //把ul列表复制到另外一个div里面/*1、获取到ul2、执行复制方法 cloneNode方法复制 true3、把复制之后的内容放到div里面去** 获取到div** appendChild方法*///获取ulvar ul41 = document.getElementById("ulid41");//复制ul,放到类似剪切板里面var ulcopy = ul41.cloneNode(true)//获取到divvar divv = document.getElementById("divv");//把副本放到div里面去divv.appendChild(ulcopy);** 操作dom总结* 获取节点使用方法getElementById():通过节点的id属性,查找对应节点。getElementsByName():通过节点的name属性,查找对应节点。getElementsByTagName():通过节点名称,查找对应节点* 插入节点的方法insertBefore方法:在某个节点之前插入appendChild方法:在末尾添加,剪切黏贴* 删除节点方法removeChild方法:通过父节点删除* 替换节点方法replaceChild方法:通过父节点替换6、innerHTML属性* 这个属性不是dom的组成部分,但是大多数浏览器都支持的属性第一个作用:获取文本内容*** //获取span标签var span1 = document.getElementById("sid");alert(span1.innerHTML);第二个作用:向标签里面设置内容(可以是html代码)*** //向div里面设置内容 <h1>AAAAA</h1>//获取到divvar div11 = document.getElementById("div11");//设置内容div11.innerHTML = "<h1>AAAAA</h1>";** 练习 : 向div里面添加一个表格- //向div里面添加一个表格//var tab = "<table border='1'><tr><td>aaaaaa</td></tr><tr><td>bbbbbb</td></tr><tr><td>cccccc</td></tr></table>";var tab = "<table>";tab += "</table>";//相当于 var tab = "<table></table>";div11.innerHTML = tab;7、案例二:动态显示时间* 得到当前的时间 var date = new Date();  //得到不是常规的格式var d1 = date.toLocaleString(); //格式化* 需要让页面每一秒获取时间setInterval方法 定时器* 显示到页面上每一秒向div里面写一次时间* 使用innerHTML属性* 代码function getD1() {//当前时间var date = new Date();//格式化var d1 = date.toLocaleString();//获取divvar div1 = document.getElementById("times");div1.innerHTML = d1;}//使用定时器实现每一秒写一次时间setInterval("getD1();",1000);

0 0
原创粉丝点击