zoukankan      html  css  js  c++  java
  • DOM

    第十章 DOM

        一.节点层次

                    文档:html页面
                    文档对象:页面中的元素
                    稳当对象模型:定义 为了能让程序(JS)操作页面中的元素

            1.Node类型

                   .childNode.length 子节点个数(只包含一级子节点,不包含孙级)、包含文本元素(如空格换行)和非法嵌套
                   .nodeType:判断节点类型
                   .attribute:节点属性个数 .attribute[ ].name 属性名称 .attribute[ ].value 属性值
                   .children.length:不包含文本元素(如空格换行)、非法嵌套
                   .firstChild :标准下:包含文本  非标准:不包含文本
                   .firstElementChild:非标准下不支持这个属性
                   .lastChild  | |  .lastElementChild: 最后一个子节点,属性同上
                   .nextSibling | | .nextElementSibling:下一个兄弟节点
                   .previousSibling | | .previousElementSibling:上一个兄弟节点、
                   .parentNode:父节点
                   .offsetParent:离当前节点最近的有定位属性的节点,如果没有定位父级,默认值Body,ie7以下,如果当前元素没有定位,默认值为BODY,如果有定位,则为htmL
                  .offsetLeft/Top:距有定位属性的父节点的距离 
                  .style.height/元素的高和宽
                  .clientWidth/Height:样式长宽+padding
                  .offsetWidth/Height:样式长宽+padding+border可视区+边框
                * 父级.appendChild(要添加的元素) 插入元素
                * 父级.insertBefore(新的元素,被插入的元素)  在指定元素之前插入一个新的元素//在ie下,如果第二个参数节点不存在,会报错,在其他标准浏览器,如果第二个参数节点不存在,则会以appendChild的形式进行插入
                *父级.removeChild(要删除的元素)删除元素
                *父级.repalceChild(替换内容,被替换内容)  替换子节点
                getElementByClassName();函数
    1. var aLi=getElementsByClassName('li_one');
    2. alert(aLi.length);
    3. // console.log(aLi);
    4. function getElementsByClassName(className)
    5. {
    6. var oAll=document.getElementsByTagName('*');
    7. var oArr=[];
    8. for(var i=0;i<oAll.length;i++)
    9. if(oAll[i].className==className)
    10. oArr.push(oAll[i]);
    11. return oArr;
    12. }
                获取表单数据:
                <form id="form">
                    <input type = "  " name = "text1 "></input>
                <form>
                    alert(form.text1.value)  ;  
                .onchange();当值发生改变时触发
                .onsubmit();表单提交时触发
                .submit()提交函数
                .onreset():当表单重置时触发
                confirm() 弹出对话框 “确定”为true “取消”为false
    1. oForm.onreset=function(){
      1. return confirm('确定要重置?');
    2. };
     
               1).nodeName和nodaValue

    2.Document类型

            document.documentElement:访问文档节点
            document.body获得body引用
            document.doctype:获得<!DOCTYPE>引用
            *多数情况下,用不着在document对象上调用appendChild();removeChild();replaceChild();因为文档类型是只读的,而且他只能有一个元素子节点,而且这个节点通常已经存在。
            document.title获得title元素(可更改)
            document.URL;获得完整URL
            document.domain;取得域名(可设置,但只能包含于URL,若开始设置省略前置域名(松散型loose),则之后不能再设置成紧绷型(tight))
            document.referrer;去的来源页面的URL

    3.Element特性

            1.取得特性

                    操作特性的方法主要有三个,分别是getAttribute()、setAttribute()和removeAttribute()。

            2.设置特性

                    div.setAttribute("id", "someOtherId");
                    div.setAttribute("class", "ft");
                    div.setAttribute("title", "Some other text");
                    div.setAttribute("lang","fr");
                    div.setAttribute("dir", "rtl"); 

            4.删除属性

                    div.removeAttribute("class"); 

            5.Attributes特性

                   要取得元素的特性,可以使用以下代码。
                         var id = element.attributes.getNamedItem("id").nodeValue;
                   以下是使用方括号语法通过特性名称访问节点的简写方式。
                         var id = element.attributes["id"].nodeValue; 

            6.创建元素

                    var div = document.createElement("div");

      4.text类型

              1.创建文本节点

                   var textNode = document.createTextNode("<strong>Hello</strong> world!");                     

                2.规范化文本节点

                     normalize();相邻文本节点合并。

               3.分割文本节点

                    splitText();

      5.Comment类型

            注释节点。

    6.CDATASection类型

    7.DocumentType类型

    8.DocumentFragment类型

    9.Attr类型

        三个属性:name 、value 、specified(区别特性是在代码中指定的还是默认的).
        
    1. var attr=document.creatAttribute("align");
    2. attr.value="left";
    3. element.setAttribuyes(attr);
     

        二.DOM操作技术

                1.动态脚本

                 

    1. function loadScript(url){
    2. script=document.creatRElement("script");
    3. script.type="text/javascript";
    4. script.src=url;
    5. document.body.appendChild(script);
    1. }

               2.动态样式    

                        
      1. function loadStyles(url){
      2. var link=documentElement("link");
      3. link.rel="stylesheet";
      4. link.type="text/css";
      5. link.herf=url;
      6. var head=document.getElementByTagName("head")[0];
      7. head.appendChild(link);
      8. }
  • 相关阅读:
    Postman使用教程
    CAD和ArcGIS转换 矢量配准
    SAP CRM Advanced search和Simple search里Max hit表现行为的差异
    SAP CRM Product simple search的启用步骤
    如何快速定位SAP CRM订单应用(Order Application)错误消息抛出的准确位置
    如何动态修改SAP CRM WebClient UI表格栏的宽度
    如何在SAP CRM WebClient UI里创建web service并使用ABAP消费
    如何处理SAP CRM Web Service错误
    如何使用SAP CRM WebClient UI实现一个类似新浪微博的字数统计器
    如何开启SAP CRM基于WORD模板创建附件的功能
  • 原文地址:https://www.cnblogs.com/gugumiemie/p/5942993.html
Copyright © 2011-2022 走看看