DOM基础讲解

1,什么是DOM?
DOM是文档对象模型,是为了文档的节点树,更好的操作文档节点,实现动态开发。
2,文档类型:
HTML:更好的显示数据;
XML:存放格式化的数据;
3,节点的类型:
  • 元素节点:1
  • 属性节点:2
  • 文本节点:3
  • 注释节点:8
  • 文档节点(不是根节点):9
  • 文档类型节点:10
  • 文档片段节点:11
4,nodeName+nodeValue:
 
  
  
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>nodeName&nodeValue</title>
  6. </head>
  7. <body>
  8. <div id="container">我是节点</div>
  9. <!-- 我是注释节点 -->
  10. <script type="text/javascript">
  11. var divNode=document.getElementById('container');
  12. console.log(divNode.nodeName+"/"+divNode.nodeValue); //DIV/null
  13. var atrrNode=divNode.attributes[0]; //得到属性
  14. console.log(atrrNode.nodeName+"/"+atrrNode.nodeValue); //id/container
  15. var textNode=divNode.childNodes[0];
  16. console.log(textNode.nodeName+"/"+textNode.nodeValue); //#text/我是节点
  17. var commentNode=divNode.nextSibling.nextSibling;
  18. console.log(commentNode.nodeName+"/"+commentNode.nodeValue); //#comment/ 我是注释节点
  19. console.log(document.doctype.nodeName+"/"+document.doctype.nodeValue); //html/null
  20. var frag=document.createDocumentFragment();
  21. console.log(frag.nodeName+"/"+document.nodeValue); //#document-fragment/null
  22. </script>
  23. </body>
  24. </html>
5.domready:
  • 什么是domReady :html通过浏览器解析会生成dom节点,在刷新url地址的时候,dom树构建,dom树构建完成,就是domReady
6,元素节点的判断:
   
   
  1. var isElement=function (obj) {
  2. if( obj && obj.nodeType===1) {
  3. if(window.Node && (obj instanceof Node)){ //ie9的
  4. return ture;
  5. }
  6. try {
  7. divNode.appendChild(obj);
  8. divNode.removeChild(obj);
  9. } catch(e) {
  10. return false;
  11. }
  12. return ture;
  13. }
  14. return false;
  15. }
7,元素节点的分类:
  • 元素节点分为html节点和xml节点;
  • html是xml的子集,xml矢量绘图分为svg,vml
  • html和xml的最大的区别是html节点的nodeName是大写
     
     
  1. // 判断节点是否为元素节点
  2. var isElement=function (obj) {
  3. var testDiv=document.createElement('div');
  4. if( obj && obj.nodeType===1) {
  5. if(window.Node && (obj instanceof Node)){ //ie9的
  6. return true;
  7. }
  8. try {
  9. testDiv.appendChild(obj);
  10. testDiv.removeChild(obj);
  11. } catch(e) {
  12. return false;
  13. }
  14. return ture;
  15. }
  16. return false;
  17. }
  18. // 判断是否为html文档类型
  19. var isHtml=function (doc) {
  20. return doc.createElement('p').nodeName === doc.createElement('p').nodeName;
  21. };
  22. // 判断元素是否为html节点
  23. var isHtmlNode=function (el) {
  24. if(isElement(el)){
  25. return isHtml(el.ownerDocument); //ownerDocument 返回节点所属的根元素
  26. }
  27. return false;
  28. }
8.HTML的嵌套规则:
  • 块元素中只能包含某些块和内联元素,内联元素中只能包含内联元素。
  • 块级元素不能放在p中
  • 只能包含内联元素的块级元素 :h1~h6,p,dt
  • li中可以包含div元素
  • 块级元素和块级元素并列,内联元素和内敛元素并列
  • option 中不可以放任何的元素节点
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值