JavaScript学习笔记(六)——常用的操作DOM方法

时间:2020-12-25 14:37:39

      DOM(文档对象模型)是针对HTML和XML文档的一个API(应用程序编程接口),描绘了一个层次化的节点数,它与事件是JavaScript最核心的组成部分之一,下面来总结记录下基本、常用的DOM操作。

思维导图:

 

JavaScript:

 

JavaScript学习笔记(六)——常用的操作DOM方法

 jQuery:

JavaScript学习笔记(六)——常用的操作DOM方法


 

 

DOM 方法和属性

1、通过document调用,获取元素节点 有三种方法:

①getElementById(id) — 通过对元素的id访问

②getElementsByTagName(tagName) — 返回一个对象数组

③getElementsByClassName(class) — 通过class属性中的类名来访问元素,IE8以下不兼容

例: <div  id = "top" >

        <ul class="txt1">

          <li>测试</li>

          <li>返回</li>

         </ul>

      </div>

<script language = "javascript">

var div = document.getElementById("top");

var txt1 = document.getElementsByClassName("txt1");

var ul = document.getElementsByTagName("ul");

alert(div.nodeName);   //显示元素名 DIV

alert(txt1.length);    //打印出 类名为“txt1” 的元素个数 为1

alert(ul.length);        //打印出 tagName为ul下 li 的个数 为2;

</script>


 

2、通过元素节点对象调用,两个方法:

①getAttribute() — 获取属性

②setAttribute()— 设置属性

可以与getElementsByTagName合用,例如:

     var paras = document.getElementsByTagName("p");   //找到<p>标签

     for(var i=0;i<paras.length;i++){            

          var title1 = paras[i].getAttribute("title");               //获取到 <p>里的title 属性

          if(title1){

              paras[i].setAttribute("title","hello,world");         //把 元素title属性设为“hello,world”

              alert(paras[i].getAttribute("title"));                   //弹框,title属性后者覆盖前者

        }

}


 

 3、DOM常用方法扩展

①createElement方法 — 创建一个新元素,并把这个新元素插入节点树

②appendChild方法 — 向当前对象追加节点

③createTextNode方法 — 创建一个文本节点

cloneNode(deepBoolean) — true:完全的复制一个节点,就是复制一切包括他的子节点,以至于文本节点,凡是有的一律克隆。 

                                            — false:只克隆当前节点,不克隆任何的子节点

insertBefore(newElement,targetElement)方法 — 在已有元素前插入一个新元素

语法:parentElement.insertBefore(newElement,targetElement);

 也可写作:targetElement.parentNode.insertBefore(newElement,targetElement);

removeChild(childreference) — 删除父节点的一个子节点

 

 

例如:

         var para = document.createElement("p");   //新创建一个p元素

         var txt = document.createTextNode("hello"); //创建一个文本节点

         var tDiv = document.getElementById("testdiv");     

         tDiv.appendChild(para);                         //p元素成为tDiv元素的一个子节点

         para.appendChild(txt);                            //在元素p后添加该文本节点

           var clone = para.cloneNode(true);            //复制p下的所有文本节点,即整个p元素

           tDiv.appendChild(clone);                        //将复制的元素添加到tDiv下,结果为tDiv下显示两个“hello”     

         tDiv.removeChild(para);                         //删除tDiv元素下的子节点p  


 

4、常用属性

传统方法属性:

①document.write —可以快捷的把字符串插入到文档里,但无法把行为与结构分离开。

②innerHTML  — 一旦使用innerHTML属性,内容全部被替换

 

DOM:

①childeNodes — 返回所有子节点对象(即可以获取任何一个元素的所有子元素)

②nodeType — 每一个节点都有nodeType属性,值为数字(一共有12种可取值)。

                 三种实用价值的可取值:元素节点的nodeType属性值是1;

                                                属性节点的nodeType属性值是2;

                                                文本节点的nodeType属性值是3;

③nodeValue — 用来得到和设置一个节点的值;

 例如:alert(para.childNodes[0].nodeValue);  // hello; 得到 p元素里第一个文本节点的nodeValue值

④firstChild   — 返回第一个子节点

语法:node.firstChild;  等价于 node.childNodes[0];

⑤lastChild — 返回最后一个节点

语法:node.lastChild;