javaScript操作DOM 建立 增加 删除 克隆 访问节点示例.docx_第1页
javaScript操作DOM 建立 增加 删除 克隆 访问节点示例.docx_第2页
javaScript操作DOM 建立 增加 删除 克隆 访问节点示例.docx_第3页
javaScript操作DOM 建立 增加 删除 克隆 访问节点示例.docx_第4页
javaScript操作DOM 建立 增加 删除 克隆 访问节点示例.docx_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JavaScript的DOM操作(节点操作)创建节点createElement()var node = document.createElement(“div”);没什么可说的,创建一个元素节点,但注意,这个节点不会被自动添加到文档(document)里。2、创建文本节点createTextNode()var value = document.createTextNode(“text”);创建一个文本节点,常用来往元素节点里添加内容,也不会自动添加到文档里。很多人知道innerHTML,不知道这个方法,这个添加的是静态文本,如果插入的内容不带HTML格式,用createTextNode比innerHTML安全,而innerText又有浏览器不兼容的问题,因此用createTextNode很好使。3、插入节点到最后appendChild()node.appendChild(value);将节点插入到最后,上面两个创建的节点不会自动添加到文档里,所以就要使appendChild来插入了。如果是新的节点是插入到最后,而如果是已经存在的节点则是移动到最后,这点很多人注意不到,理解了这点,再和下面的方法结合,可以方便的移动操作节点。4、插入节点到目标节点的前面insertBefore()var node = document.createElement(“div”);var _p = document.createElement(“p”);var _span = document.createElement(“span”);node.appendChild(_p);node.insertBefore(_span, _p);节点在节点前面插入,其中第二个参数是可选,如果第二个参数不写,将默认添加到文档的最后,相当于appendChild。同样,appendChild和insertBefore,如果是已存在节点,他们都会自动先删除原节点,然后移动到你指定的地方。将节点移动到最前面的技巧:if (node.parentNode.firstChild) node.parentNode.insertBefore(node, node.parentNode.firstChild);else node.parentNode.appendChild(node);5、复制节点cloneNode(boolean)node.cloneNode(true);node.cloneNode(false);复制上面的div节点,参数true,复制整个节点和里面的内容;false,只复制节点不要里面的内容,复制后的新节点,也不会被自动插入到文档,需要用到3和4的方法去插入。6、删除节点removeChild()node.removeChild(_p);把上面的节点从里删除。不过一般情况下,不知道要删除的节点的父节点是什么,因此一般这么使:node.parentNode.removeChild(node);7、替换节点repalceChild(newNode, oldNode)node.repalceChild(_p, _span);把上面的节点替换成节点,注意无论是还是,都必须是的子节点,或是一个新的节点。8、设置节点属性setAttribute()node.setAttribute(title,abc);不解释了,很容易明白。就说一句,用这个方法设置节点属性兼容好,但class属性不能这么设置。9、获取节点属性getAttribute()node.getAttribute(title);同8,获取节点属性。10、判断元素是否有子节点hasChildNodesnode.hasChildNodes;返回boolean类型,因此将新节点插入到最前面的技巧:var node = document.createElement(“div”);var newNode = document.createElement(“p”);if (node.hasChildNodes) node.insertBefore(newNode, node.firstChild);else node.appendChild(node);最后是DOM的属性:nodeName - 节点的名字;nodeType - 返回一个整数,代表这个节点的类型,1-元素节点,2-属性节点,3-文本节点;nodeValue - 返回一个字符串,这个节点的值;childNodes - 返回一个数组,数组由元素节点的子节点构成;firstChild - 返回第一个子节点;lastChild - 返回最后一个子节点;nextSibling - 返回目标节点的下一个兄弟节点,如果目标节点后面没有同属于一个父节点的节点,返回null;previousSibling - 返回目标节点的前一个兄弟节点,如果目标节点前面没有同属于一个父节点的节点,返回null;parentNode - 返回的节点永远是一个元素节点,因为只有元素节点才有可能有子节点,document节点将返回null;javaScript操作DOM 建立 增加 删除 克隆 访问节点示例: 1. getElementById(id) 这是通过id来访问某一元素,最常用的之一,例: test alert(document.getElementById(myid).innerHTML); 注意点:如果元素的ID不是唯一,则会取得第一个该ID名称的元素2. getElementsByName(name) 这是通过name来取得某一堆元素(作为数组),看 Element后面有个小s就知道了,ID是HTML文档中要求唯一的,name可以不是唯一,如checkbox、radio等地方会用到多个 input用同一个name来识别是否为同党。对了,getElementsByName(name)仅用于取得input、radio、 checkbox等元素,如3. getElementsByTagName(tagname) 看这方法就知道这也是取得某一堆元素(作为数组),是通过TagName也就是标签名来取得。你可以遍历这个数组获得每一个单独的元素。当一个DOM结构很大时,可以通过它来有效地缩小搜查范围。 function test() testall=document.getElementsByTagName(body); testbody=testall.item(0); /获得所有tagName是body的元素(当然每个页面只有一个) testall=testbody.getElementsByTagName(p);/ 获得body子元素种的所有P元素 testnode=testall.item(1); / 获得第二个P元素 alert(testnode.firstChild.nodeValue); /显示这个元素的文本 hi hello test(); 4. appendChild(node) 向当前的元素(应该叫对象比较恰当)追加节点。 var newdiv=document.createElement(div) var newtext=document.createTextNode(A new div) newdiv.appendChild(newtext) document.getElementById(test).appendChild(newdiv) 刚才我在第一个例子中为了显示出内容,用了innerHTML,刚才看到文章才得知innerHTMl不属于DOM。5. removeChild(childreference)删除当前节点的子节点,返回被删除的节点。这个被删除的节点可以被插入到别的地方 A childvar childnode=document.getElementById(child)var removednode=document.getElementById(parent).removeChild(childnode) 6. cloneNode(deepBoolean)复制并返回当前节点的复制节点,复制节点是一个孤立节点,它复制了原节点的属性,在把这个新节点加入到document前,根据需要修改ID属性确保其ID的唯一。这个方法支持一个布尔参数,当deepBoolean设置true时,复制当前节点的所有子节点,包括该节点内的文本。 test p=document.getElementById(mynode) pclone = p.cloneNode(true); p.parentNode.appendChild(pclone); 7. replaceChild(newChild, oldChild)把当前节点的一个子节点换成另一个节点 span var orinode=document.getElementById(orispan); var newnode=document.createElement(p); var text=document.createTextNode(test ppp ); newnode.appendChild(text); document.getElementById(mynode2).replaceChild(newnode, orinode); javaScript操作DOM 建立 增加 删除 克隆 访问节点示例:1. getElementById(id) 这是通过id来访问某一元素,最常用的之一,例: test alert(document.getElementById(myid).innerHTML); 注意点:如果元素的ID不是唯一,则会取得第一个该ID名称的元素2. getElementsByName(name) 这是通过name来取得某一堆元素(作为数组),看 Element后面有个小s就知道了,ID是HTML文档中要求唯一的,name可以不是唯一,如checkbox、radio等地方会用到多个 input用同一个name来识别是否为同党。对了,getElementsByName(name)仅用于取得input、radio、 checkbox等元素,如3. getElementsByTagName(tagname) 看这方法就知道这也是取得某一堆元素(作为数组),是通过TagName也就是标签名来取得。你可以遍历这个数组获得每一个单独的元素。当一个DOM结构很大时,可以通过它来有效地缩小搜查范围。 function test() testall=document.getElementsByTagName(body); testbody=testall.item(0); /获得所有tagName是body的元素(当然每个页面只有一个) testall=testbody.getElementsByTagName(p);/ 获得body子元素种的所有P元素 testnode=testall.item(1); / 获得第二个P元素 alert(testnode.firstChild.nodeValue); /显示这个元素的文本 hi hello test(); 4. appendChild(node) 向当前的元素(应该叫对象比较恰当)追加节点。 var newdiv=document.createElement(div) var newtext=document.createTextNode(A new div) newdiv.appendChild(newtext) document.getElementById(test).appendChild(newdiv) 刚才我在第一个例子中为了显示出内容,用了innerHTML,刚才看到文章才得知innerHTMl不属于DOM。5. removeChild(childreference)删除当前节点的子节点,返回被删除的节点。这个被删除的节点可以被插入到别的地方 A child var childnode=document.getElementById(child) var removednode=document.getElementById(parent).removeChild(childnode) 6. cloneNode(deepBoolean)复制并返回当前节点的复制节点,复制节点是一个孤立节点,它复制了原节点的属性,在把这个新节点加入到document前,根据需要修改ID属性确保其ID的唯一。这个方法支持一个布尔参数,当deepBoolean设置true时,复制当前节点的所有子节点,包括该节点内的文本。 test p=document.getElementById(mynode) pclone = p.cloneNode(true); p.parentNode.appendChild(pclone)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论