javascript之DOM

一、Dom介绍

  什么是Dom?

   DOM:文档对象模型。DOM 为文档提供了结构化表示,并定义了如何通过脚本来访问文档结构。目的其实就是为了能让js操作html元素而制定的一个规范。

  DOM就是由节点组成的。

    1.   元素节点:HMTL标签。

    2.   文本节点:标签中的文字(比如标签之间的空格、换行)

    3.   属性节点::标签的属性。

  Dom能做些什么?

    1.   找对象(元素节点)

    2.   设置元素的属性值

    3.   设置元素的样式

    4.   动态创建和删除元素

    5.   事件的触发响应:事件源、事件、事件的驱动程序

二、元素节点的操作相关

  元素节点的获取

  document.getElementById()    根据Id获取元素节点

 1     <div id="div1">
 2         <p id="p1">
 3             我是第一个P</p>
 4         <p id="p2">
 5             我是第二个P</p>
 6     </div>
 7     
 8     window.onload = function () {
 9             var str = document.getElementById("p1").innerHTML;
10             alert(str);        //弹出    我是第一个P
11         }

  document.getElementsByName()    根据name获取元素节点

 1  <div id="div1">
 2         <p id="p1">
 3             我是第一个P</p>
 4         <p id="p2">
 5             我是第二个P</p>
 6         <input type="text" value="请输入值" name="userName" />
 7         <input type="button" value="确定" onclick="fun1()">
 8     </div>
 9         
10         function fun1() {
11             var username = document.getElementsByName("userName")[0].value;
12             alert(username);    //输出userName里输入的值
13         }

  document.getElementsByTagName()    根据HTML标签名获取元素节点,注意getElements***的选择器返回的是一个NodeList对象,能根据索引号选择其中1个,可以遍历输出。

 1     <div id="div1">
 2         <p id="p1">
 3             我是第一个P</p>
 4         <p id="p2">
 5             我是第二个P</p>
 6     </div>
 7 
 8     window.onload = function () {
 9             var str = document.getElementsByTagName("p")[1].innerHTML;
10             alert(str);        //输出  我是第二个P,因为获取的是索引为1的P,索引从0开始
11         }    
12 
13     window.onload = function () {
14             var arr = document.getElementsByTagName("p");
15             for (var i = 0; i < arr.length; i++) {
16                 alert(arr[i].innerHTML);
17             }
18         }
19 
20     window.onload = function () {
21             var node = document.getElementById("div1");
22          var node1 = document.getElementsByTagName("p")[1];    //从获取到的元素再获取
23             alert(node1.innerHTML);
24     }

  document.getElementsByClassName()    根据class获取元素节点

 1   <div id="div1">
 2         <p id="p1" class="class1">
 3             我是第一个P</p>
 4         <p id="p2">
 5             我是第二个P</p>
 6     </div>
 7 
 8     window.onload = function () {
 9             var node = document.getElementsByClassName("class1")[0];
10             alert(node.innerHTML);
11         }

  元素节点的创建,插入与删除

  document.createTextNode()    创建一个文本节点

1  <div id="div1">
2             <p id="p1">我是第一个P</p>
3             <p id="p2">我是第二个P</p>
4         </div>
5 
6     window.onload = function () {
7             var textNode = document.createTextNode("<p>我是一个javascript新建的节点</p>");
8             document.getElementById("div1").appendChild(textNode);
9         }

  document.createElement()    创建一个元素节点

 1  <div id="div1">
 2             <p id="p1">我是第一个P</p>
 3             <p id="p2">我是第二个P</p>
 4         </div>
 5 
 6     window.onload = function () {
 7             var pNode = document.createElement("p");
 8             pNode.textContent = "新建一个P节点";
 9             document.getElementById("div1").appendChild(pNode);
10         }

  appendChild & insertBefore   插入节点

 1     <div id="div1">
 2             <p id="p1">我是第一个P</p>
 3         </div>
 4 
 5     window.onload = function () {
 6             var pNode1 = document.createElement("p");
 7             pNode1.textContent = "insertBefore插入的节点";
 8             var pNode2 = document.createElement("p");
 9             pNode2.textContent = "appendChild插入的节点";
10             document.getElementById("div1").appendChild(pNode2);
11             document.getElementById("div1").insertBefore(pNode1,document.getElementById("p1"));
12         }
13 // appendChild()    将一个节点插入到调用节点的最后面
14 // insertBefore()    接受两个参数,第一个为待插入的节点,第二个指明在哪个节点前面如
15 // 果不传入第二个参数,则跟appendChild一样,放在最后。

  removeChild() & replaceChild() 删除和替换节点

    <div id="div1">
            <p id="p1">我是第一个P</p>
            <p id="p2">我是第二个P</p>
        </div>

    window.onload = function () {
            var div1 = document.getElementById("div1");
            div1.removeChild(document.getElementById("p2"));
        }
//   由父元素调用,删除一个子节点。注意是直接父元素调用,删除直接子元素才有效,删除孙
//子元素就没有效果了。
 1     <div id="div1">
 2             <p id="p1">我是第一个P</p>
 3             <p id="p2">我是第二个P</p>
 4         </div>
 5 
 6     window.onload = function () {
 7             var div1 = document.getElementById("div1");
 8             var span1 = document.createElement("span");
 9             span1.textContent = "我是一个新建的span";
10             div1.replaceChild(span1,document.getElementById("p2"));
11         }
12 //删除一个子节点,并用一个新节点代替它,第一个参数为新建的节点,第二个节点为被替换的
13 //节点

猜你喜欢

转载自www.cnblogs.com/qq631243523/p/9708240.html