A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© LiuKang 中级黑马   /  2013-12-12 20:58  /  1391 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

DOMDocument Object Model 文档对象模型
该技术的出现,将标记型文档封装成了对象,并将该标记型文档的所有内容(标签,属性,文本)都封装成对象
这样就可以将对象中封装更多的属性和行为,我们操作这些对象,就可以实现静态页面具备动态的效果,比如下拉菜单
DOM技术不断的升级出现了三级模型
DOM1:将html文档封装成了对象
DOM2:在DOM1的基础上添加了一些新功能,比如对名称空间的解析
DOM3:将xml文档封装成了对象
该项技术本身跨平台,只要有具备DOM解析器的应用程序,就可以对标记型进行DOM解析
DHTML(动态的HTML):多个技术的综合体(html,css,dom,javascript)简称
Html:提供了标签用于封装数据,是基础,没标签什么都做不了
Css: 提供样式,对标签封装的内容进行演示的操作
Dom:html文档封装成了对象,并将文档中的内容都封装成对象,对象中都定义了更多的 属性和行为,方便于对对象的操作
Javascript:提供逻辑性很强的程序设计语言,负责页面的行为
DOM-window
对象用于function中,事件:window.事件名 = function(){}
Document获取节点
    当一个html文本被dom解析后,加载进内存,就是一个dom
每一个标签都是一个字节点,为了操作某一个节点,前提就是先要获取该节点对象
最常见的操作无非就是获取页面中的节点。
节点都具备三个属性:1节点名称(nodeName
                    2.节点类型(nodeType
                    3.节点值(nodeValue
获取方法:
getElementById():通过标签的id属性值来获取该标签节点对象,改方法返回的是一个节点对象,因为一般情况id是唯一性的。不是说所有的标签都要定义id属性,这样做太麻烦
只有大的区域,获取特殊区域,为了方便于获取和操作,才定义id属性
getElementsByName():通过标签的name属性值来获取节点对象,返回的是一个节点数组
getElementsByTagName():通过标签名称获取节点对象,返回是一个节点数组
通过集合的属性来拿到页面中一系列的节点
例:window.onload = function()
{
  Var arr = document.links;//获取页面中所有带有href属性的标签对象
For(var x = 0;x<arr.length; x++)
{
   Alert(arr[x].innerText);
}
}
通过节点层次关系获取节点对象
节点之间都存在层次关系:父节点,子节点,兄弟节点(上一个兄弟节点,下一个兄弟节点)
获取表格节点:var tabNode = document.getElementById(“tabld”);
获取父节点: var node = tabNode.parentNode;
             Alert(node.nodeName+”...”+node.nodeType+”...”+node.nodeValue);
获取子节点:var node = tabNode.childNode;
            Alert(nodes.length);
获取所有节点用递归的方式获取
创建添加节点:
Var textNode = document.createTextNode(“div区域一”);
Var divNode = document.getElementById(“div_1”);
删除节点:divNode.removeChild(textNode);
对于文本的删除:divNode.innerHtml = “”;
替换节点:
思路:1获取原文本节点2创建一个新的文本节点3通过div方法完成替换
Var divNode = document.getElementById(“div_3”);
Var oldTextNode = divNode.childNode[0];
Var newTextNode = document.createTextNode(“一个新的文本”)
divNode.replaceChild(newTextNode,oldTextNode);
克隆节点:
Var divNode_4 = document.getElementById(“div_4”);
Var divNode_1 = document.getElementById(“div_1”);
Var copy_4 = divNode_4.cloneNode();
divNode_1.replaceNode(divNode_4);

评分

参与人数 1技术分 +1 黑马币 +3 收起 理由
狼王 + 1 + 3 赞一个!

查看全部评分

您需要登录后才可以回帖 登录 | 加入黑马