• JavaScript的学习----3.操作DOM对象


    DOM即就是:Document Object Model(文档对象模型):

    DOM包括:HtmlDom , CssDom;

    那么JavaScript如何获得网页元素并进行操作呢???  通过节点。

    1.getElement系列访问指定节点: 

    getElementById()

    getElementsByName()

    getElementsByTagName()

    2.节点的属性:

    parentNode:返回节点的父节点

    childNodes:返回子节点集合

    firstChild:返回节点的第一个子节点

    lastChild:返回节点的最后一个结点

    nextSibling:下一个节点

    previousSibling:上一个节点

    3.element的属性:

    firstElementChild:返回节点的第一个子节点

    lastElementChild:返回节点的最后一个结点

    nextElementChild:下一个结点

    previousElementSibling:上一个节点

    4.节点信息:

    nodeName:节点名称

    nodeValue:节点值

    nodeType:节点类型

    元素element   (NodeType值)1

    属性attr              2

    文本text            3

    注释comments   8

    文档document   9

    一些代码实例:

    1.节点的访问测试:

    lastchild:会返回一个[Object Text]类型
    lastElementChild:会返回一个[Object HTMLElement]

    [Object Text]:文本对象,无法直接写入网页,会出现一个未定义;

    [Object HTMLElement]:网页元素对象,调用innerHTML可以直接写入网页;

     1 <html lang="en">
     2 <head>
     3     <meta charset="UTF-8">
     4     <title>Title</title>
     5 </head>
     6 <!--
     7 document.write :只能写入Html元素
     8 [Object Text] :文本对象,无法直接写入网页,会出现一个 未定义
     9 [Object HTMLElement]:网页元素对象,调用innerHTML可以直接写入网页(Html的形式)
    10 
    11 lastchild:会返回一个[Object Text]类型
    12 
    13 -->
    14 
    15 <body>
    16 <section id="id1">
    17 
    18     <ul>
    19         <li><a href="">1</a></li>
    20         <li><a href="">2</a></li>
    21         <li><a href="">3</a></li>
    22         <li><a href="">4</a></li>
    23         <li><a href="">5</a></li>
    24         <li><a href="">6</a></li>
    25     </ul>
    26 
    27 </section>
    28 
    29 <script>
    30 
    31     var a=document.getElementById("id1").lastElementChild.lastChild.parentElement;
    32     console.log(a);
    33     document.writeln(a.innerHTML);
    34     document.writeln(a);
    35 </script>
    36 
    37 </body>
    38 </html>

    2.获得和修改节点 的属性:

    eg:修改a标签的src属性;

     1 <html lang="en">
     2 <head>
     3     <meta charset="UTF-8">
     4     <title>Title</title>
     5 
     6 
     7 </head>
     8 <body>
     9 
    10 <a href="#" id="a" style="">啦啦啦啦</a>
    11 
    12 <script>
    13 
    14     var a=document.getElementById("a").getAttribute("href");
    15     document.getElementById("a").setAttribute("href","https://www.baidu.com");
    16     a=document.getElementById("a").getAttribute("href");
    17     console.log(a);
    18     document.getElementById("a").setAttribute("style","border: 2px solid red");
    19 </script>
    20 
    21 </body>
    22 </html>

    3.创建和插入节点的测试:

     //A.appendChild(B) 在a的后面追加b
     1 <html lang="en">
     2 <head>
     3     <meta charset="UTF-8">
     4     <title>Title</title>
     5 </head>
     6 <body>
     7 
     8 <p id="pp">请选择你喜欢的书籍: 剑指Offer<input type="radio" name="book"  onclick="book()"> &nbsp;
     9     JVM<input type="radio" name="book" onclick="book()">
    10 
    11 </p>
    12 
    13 <div></div>
    14 
    15 <script>
    16     // document.getElementById("1");
    17     //获得的都是[Object htmlelement]
    18 
    19     function book() {
    20         var a=document.getElementsByName("book");
    21         //console.log(a);  //a是一个数组,a[0]--JVM  a[1]--剑指offer
    22 
    23         var b=document.getElementsByTagName("div")[0];
    24         //[0]--div标签里面的内容
    25 
    26         var img=document.createElement("img");
    27         //创建的元素对象
    28 
    29         if(a[0].checked){
    30             img.setAttribute("src","images/1.png");
    31             img.setAttribute("alt","JVM");
    32             //A.appendChild(B) 在a的后面添加b
    33             b.appendChild(img);
    34             //添加指定的元素
    35         }
    36         if(a[1].checked){
    37             img.setAttribute("src","images/2.png");
    38             img.setAttribute("alt","剑指Offer");
    39             b.appendChild(img);
    40         }
    41     }
    42 
    43 
    44 
    45 </script>
    46 
    47 
    48 
    49 </body>
    50 </html>

    4.对选中元素进行修改和删除:

     1 <html lang="en">
     2 <head>
     3     <meta charset="UTF-8">
     4     <title>Title</title>
     5 </head>
     6 <body>
     7 
     8 <p>
     9     <img src="images/1.png" alt="Jvm" id="p1">
    10     <input type="button" value="删除我" onclick="del()">
    11 </p>
    12 
    13 <p>
    14     <img src="images/2.png" alt="剑指Offer" id="p2">
    15     <input type="button" value="替换我" onclick="rep()">
    16 </p>
    17 
    18 
    19 <script>
    20 
    21     function del() {
    22 
    23         var par=document.getElementById("p1").parentElement;
    24         //removeChild(子节点)
    25         par.removeChild(par.firstChild);
    26         console.log(par.firstChild);
    27     }
    28     
    29     function rep() {
    30         var old=document.getElementById("p2");
    31         //修改路径直接替换
    32         //old.setAttribute("src","images/1.png");
    33 
    34         var newp=document.createElement("img");
    35         newp.setAttribute("src","images/1.png");
    36         old.parentNode.replaceChild(newp,old);
    37     }
    38 </script>
    39 
    40 </body>
    41 </html>
  • 相关阅读:
    HDU 5087 (线性DP+次大LIS)
    POJ 1064 (二分)
    Codeforces 176B (线性DP+字符串)
    POJ 3352 (边双连通分量)
    Codeforces 55D (数位DP+离散化+数论)
    POJ 2117 (割点+连通分量)
    POJ 1523 (割点+连通分量)
    POJ 3661 (线性DP)
    POJ 2955 (区间DP)
    LightOJ 1422 (区间DP)
  • 原文地址:https://www.cnblogs.com/xbfchder/p/11097399.html
Copyright © 2020-2023  润新知