zoukankan      html  css  js  c++  java
  • JavaScript -- 时光流逝(十二):DOM -- Element 对象

    JavaScript -- 知识点回顾篇(十二):DOM -- Element 对象

    (1) element.accessKey: 设置或返回accesskey一个元素,使用 Alt + 指定快捷键 为元素赋予焦点

    <!doctype html>
    <html>
    <head>
    <meta charset="UTF-8">
    <script type="text/javascript">
        function my_accesskey(){
          document.getElementById('a1').accessKey="B"; //按ALt+B,id是a1的元素获得焦点
          document.getElementById('a2').accessKey="H"; //按ALt+H,id是a1的元素获得焦点
        }
    </script>
    </head>
    <body>
        <a id="a1" href="https://www.baidu.com/">百度</a><br/>
        <a id="a2" href="https://www.hao123.com/">Hao123</a><br/>
        <input type="button" value="点我" onclick="my_accesskey()"/>
    </body>
    </html>

       

     
    (2) element.addEventListener(): 向指定元素添加事件句柄

    <!doctype html>
    <html>
    <head>
    <meta charset="UTF-8">
    </head>
    <body>
        <input type="button" id='myBtn' value="点我" />
        <div id='myInfo'></div>
        <script type="text/javascript">
            document.getElementById("myBtn").addEventListener("click", function(){
                document.getElementById("myInfo").innerHTML = "Hello World";
            });
        </script>
    </body>
    </html>


    (3) element.appendChild(): 为元素添加一个新的子元素

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
        <meta charset="utf-8" />
        <script type="text/javascript">
            function my_appendChild() {
                var node = document.createElement("LI");
                var textnode = document.createTextNode("CCC");
                node.appendChild(textnode);
                document.getElementById("myList").appendChild(node);
            }
        </script>
        </head>
    <body>
        <ul id="myList"><li>AAA</li><li>BBB</li></ul>
        <input type="button" value="按钮" onclick="my_appendChild()" />
    </body>
    </html>

     


    (4) element.attributes: 返回一个元素的属性数组

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
        <meta charset="utf-8" />
        <script type="text/javascript">
            function my_attributes() {
                var btn = document.getElementsByTagName("BUTTON")[0];
                document.getElementById("myInfo").innerHTML = btn.attributes.length;
            }
        </script>
        </head>
    <body>
        <button id="btn1" onclick="my_attributes()">点我</button>
        <div id="myInfo"></div>
    </body>
    </html>

     


    (5) element.childNodes: 返回元素的一个子节点的数组

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
        <meta charset="utf-8" />
        <script type="text/javascript">
            function my_achildNodes() {
                var txt = "";
                var c = document.body.childNodes;
                for (i = 0; i < c.length; i++) {
                    txt = txt + c[i].nodeName + "<br/>";
                };
                document.getElementById("myInfo").innerHTML = txt;
            }
        </script>
        </head>
    <body>
        <button id="btn1" onclick="my_achildNodes()">点我</button>
        <div id="myInfo"></div>
    </body>
    </html>

     


    (6) element.children: 返回元素的子元素的集合

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
        <meta charset="utf-8" />
        <script type="text/javascript">
            function my_children() {
                var c = document.body.children;
                var txt = "";
                var i;
                for (i = 0; i < c.length; i++) {
                    txt = txt + c[i].tagName + "<br/>";
                }
                document.getElementById("myInfo").innerHTML = txt;
            }
        </script>
        </head>
    <body>
        <button id="btn1" onclick="my_children()">点我</button>
        <div id="myInfo"></div>
    </body>
    </html>

     

     
    (7) element.classList: 返回元素的类名。
         element.className: 设置或返回元素的class属性

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title>myTest</title>
        <style>
            .mystyle {
                background-color: red;
            }
        </style>
        <meta charset="utf-8" />
        <script type="text/javascript">
            function my_classList() {
                document.getElementById("div1").classList.add("mystyle");
                document.getElementById("myInfo").innerHTML = document.getElementById('div1').className;
            }
        </script>
        </head>
    <body>
        <button id="btn1" onclick="my_classList()">点我</button>
        <div id="div1">Hello</div>
        <div id="myInfo"></div>
    </body>
    </html>

      

    (8) element.cloneNode(): 克隆某个元素

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title>myTest</title>
        <style>
            .mystyle {
                background-color: red;
            }
        </style>
        <meta charset="utf-8" />
        <script type="text/javascript">
            function my_cloneNode() {
                var itm = document.getElementById("myList2").lastChild;
                var cln = itm.cloneNode(true);
                document.getElementById("myList1").appendChild(cln);
            }
        </script>
        </head>
    <body>
        <ul id="myList1"><li>AAA</li><li>BBB</li></ul>
        <ul id="myList2"><li>CCC</li><li>DDD</li></ul>
        <button id="btn1" onclick="my_cloneNode()">点我</button>
    </body>
    </html>

         


    (9) element.compareDocumentPosition(): 比较两个元素的文档位置。返回值可能是:

        1:没有关系,这两个节点不属于同一个文档。

        2: 第一节点(P1)位于第二个节点后(P2)。

        4:第一节点(P1)定位在第二节点(P2)前。

        8: 第一节点(P1)位于第二节点内(P2)。

        16: 第二节点(P2)位于第一节点内(P1)。

        32:没有关系的,或是两个节点在同一元素的两个属性。
        element.contentEditable: 设置或返回元素的内容是否可编辑。

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title>myTest</title>
        <style>
            .mystyle {
                background-color: red;
            }
        </style>
        <meta charset="utf-8" />
        <script type="text/javascript">
            function my_compareDocumentPosition() {
                var p1 = document.getElementById("p1").lastChild;
                var p2 = document.getElementById("p2").lastChild;
                document.getElementById("myInfo").innerHTML = p1.compareDocumentPosition(p2) + '<br/>';
                document.getElementById("myInfo").innerHTML += p2.compareDocumentPosition(p1) + '<br/>';
            }
            function my_contentEditable() {
                document.getElementById("p1").contentEditable = true;
            }
        </script>
        </head>
    <body>
        <p id="p1">122</p>
        <p id="p2">133</p>
        <button id="btn1" onclick="my_compareDocumentPosition()">按钮1</button>
        <button id="btn2" onclick="my_contentEditable()">按钮2</button>
        <div id="myInfo"></div>
    </body>
    </html>

        


    (10) element.dir: 设置或返回一个元素中的文本方向
       element.firstChild: 返回元素的第一个子节点
       element.getAttribute(): 返回指定元素的属性值
       element.getAttributeNode(): 返回指定属性节点

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title>myTest</title>
        <meta charset="utf-8" />
        <script type="text/javascript">
            function my_Test() {
                document.getElementById("myInfo").innerHTML = document.getElementById('p1').dir + '<br/>';
                document.getElementById("myInfo").innerHTML += document.getElementById('p2').dir + '<br/>';
                document.getElementById("myInfo").innerHTML += document.firstChild.nodeName + '<br/>';
                document.getElementById("myInfo").innerHTML += document.getElementById('p1').getAttribute("dir")+ '<br/>';
                document.getElementById("myInfo").innerHTML += document.getElementById('p2').getAttributeNode("dir").value + '<br/>';
            }
        </script>
        </head>
    <body>
        <p id="p1" dir="rtl">Hello A</p>
        <p id="p2" dir="ltr">Hello B</p>
        <button id="btn1" onclick="my_Test()">按钮</button>
        <div id="myInfo"></div>
    </body>
    </html>

      

     
    (11) element.hasAttribute(): 如果元素中存在指定的属性返回 true,否则返回false。
       element.hasAttributes(): 如果元素有任何属性返回true,否则返回false。
      element.hasChildNodes(): 返回一个元素是否具有任何子元素
      element.hasFocus(): 返回布尔值,检测文档或元素是否获取焦点

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title>myTest</title>
        <meta charset="utf-8" />
        <script type="text/javascript">
            function my_Test() {
                document.getElementById("myInfo").innerHTML = document.getElementById('btn1').hasAttribute("onclick") + '<br/>';
                document.getElementById("myInfo").innerHTML += document.getElementById('btn1').hasAttributes() + '<br/>';
                document.getElementById("myInfo").innerHTML += document.getElementById('p1').hasChildNodes() + '<br/>';
                document.getElementById("myInfo").innerHTML += document.hasFocus() + '<br/>';
            }
        </script>
        </head>
    <body>
        <p id="p1"></p>
        <button id="btn1" onclick="my_Test()">按钮</button>
        <div id="myInfo"></div>
    </body>
    </html>

     


    (12) element.insertBefore(): 现有的子元素之前插入一个新的子元素

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title>myTest</title>
        <meta charset="utf-8" />
        <script type="text/javascript">
            function my_Test(){
                var newItem=document.createElement("LI");
                var textnode=document.createTextNode("XXX");
                newItem.appendChild(textnode);
                var list=document.getElementById("myList")
                list.insertBefore(newItem,list.childNodes[0]);
            }
        </script>
        </head>
    <body>
        <ul id="myList"><li>AAA</li><li>BBB</li></ul>
        <button id="btn1" onclick="my_Test()">按钮</button>
    </body>
    </html>

       

    (13) element.isEqualNode(): 检查两个元素是否相等
         element.isSameNode(): 检查两个元素所有有相同节点。

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title>myTest</title>
        <meta charset="utf-8" />
        <script type="text/javascript">
            function my_isEqualNode(){
                var item1=document.getElementById("myList1").firstChild;
                var item2=document.getElementById("myList2").firstChild;
                document.getElementById("myInfo").innerHTML=item1.isEqualNode(item2);
            }
    
            function my_isSameNode(){
                var item3=document.getElementById("myList1");
                var item4=document.getElementsByTagName("UL")[0];
                document.getElementById("myInfo").innerHTML=item3.isSameNode(item4);
            }
        </script>
        </head>
    <body>
        <ul id="myList1"><li>AAA</li><li>BBB</li></ul>
        <ul id="myList2"><li>AAA</li><li>CCC</li></ul>
        <button id="btn1" onclick="my_isEqualNode()">按钮1</button>
        <button id="btn2" onclick="my_isSameNode()">按钮2</button>
        <div id='myInfo'></div>
    </body>
    </html>

      


    (14) element.isContentEditable: 如果元素内容可编辑返回 true,否则返回false
      element.isDefaultNamespace(): 如果指定了namespaceURI 返回 true,否则返回 false。
      element.isSupported(): 如果在元素中支持指定特征返回 true。
      element.lang: 设置或者返回一个元素的语言。
      element.lastChild: 返回的最后一个子元素
      element.namespaceURI: 返回命名空间的 URI。
      element.nextSibling: 返回该元素紧跟的一个节点
      element.nextElementSibling: 返回指定元素之后的下一个兄弟元素(相同节点树层中的下一个元素节点)。
      element.nodeName: 返回元素的标记名(大写)
      element.nodeType: 返回元素的节点类型
      element.nodeValue: 返回元素的节点值
      element.ownerDocument: 返回元素的根元素(文档对象)
      element.parentNode: 返回元素的父节点
      element.previousSibling: 返回某个元素紧接之前元素
      element.previousElementSibling: 返回指定元素的前一个兄弟元素(相同节点树层中的前一个元素节点)。
      element.tagName: 作为一个字符串返回某个元素的标记名(大写)

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>myTest</title>
    <meta charset="utf-8" />
    </head>
    <body id="b1" lang="en-us">
        <ul id="myList1"><li id="item1">AAA</li><li id="item2">BBB</li><li>CCC</li></ul>
        <p id="p1" contenteditable="true">Hello</p>
        <button id="btn1" onclick="my_Test()">按钮</button>
        <div id='myInfo'></div>
        <script type="text/javascript">
            function my_Test(){
                document.getElementById("myInfo").innerHTML="isContentEditable:  "+document.getElementById("p1").isContentEditable;
                document.getElementById("myInfo").innerHTML+="<br/>isDefaultNamespace:  "+document.documentElement.isDefaultNamespace("http://www.w3.org/1999/xhtml");
                document.getElementById("myInfo").innerHTML+="<br/>isSupported:  "+document.getElementById("btn1").isSupported("Core","2.0");
                document.getElementById("myInfo").innerHTML+="<br/>lang:  "+document.getElementById("b1").lang;
                document.getElementById("myInfo").innerHTML+="<br/>lastChild:  "+document.getElementById("myList1").lastChild.nodeName;
                document.getElementById("myInfo").innerHTML+="<br/>namespaceURI:  "+document.documentElement.namespaceURI;
                document.getElementById("myInfo").innerHTML+="<br/>nextSibling:  "+document.getElementById("item1").nextSibling.id;
                document.getElementById("myInfo").innerHTML+="<br/>nextElementSibling:  "+document.getElementById("item1").nextElementSibling.innerHTML;
                document.getElementById("myInfo").innerHTML+="<br/>nodeName:  "+document.body.nodeName;
                document.getElementById("myInfo").innerHTML+="<br/>nodeType:  "+document.body.nodeType;
                document.getElementById("myInfo").innerHTML+="<br/>nodeValue:  "+document.getElementsByTagName("UL")[0].childNodes[0].nodeValue;
                document.getElementById("myInfo").innerHTML+="<br/>ownerDocument:  "+document.getElementById("myInfo").ownerDocument.nodeType;
                document.getElementById("myInfo").innerHTML+="<br/>parentNode:  "+document.getElementById("item1").parentNode.nodeName;
                document.getElementById("myInfo").innerHTML+="<br/>previousSibling:  "+document.getElementById("item2").previousSibling.id;
                document.getElementById("myInfo").innerHTML+="<br/>previousElementSibling:  "+document.getElementById("item2").previousElementSibling.innerHTML;
                document.getElementById("myInfo").innerHTML+="<br/>tagName:  "+document.getElementById("myInfo").tagName;
            }
        </script>
    </body>
    </html>


    (15) element.removeAttribute(): 从元素中删除指定的属性
           element.removeAttributeNode(): 删除指定属性节点并返回移除后的节点。

      element.setAttribute(): 设置或者改变指定属性并指定值。
      element.setAttributeNode(): 设置或者改变指定属性节点。

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>myTest</title>
    <meta charset="utf-8" />
    <style type="text/css">
        .myclass{
            color:blue;
        }
    </style>
    </head>
    <body id="b1" lang="en-us">
        <p id="p1" style="color:red">Hello 1</p>
        <p id="p2" style="color:red">Hello 2</p>
        <button id="btn1" onclick="my_Test()">按钮1</button>
        <button id="btn2" onclick="my_Test2()">按钮2</button>
        <script type="text/javascript">
            function my_Test(){
                var p1=document.getElementsByTagName("p")[0];
                var a1=p1.getAttributeNode("style");
                p1.removeAttributeNode(a1);    
                
                var p2=document.getElementsByTagName("p")[1];
                var a2=p2.getAttributeNode("style");
                p2.removeAttributeNode(a2);
            }
    
            function my_Test2(){
                document.getElementsByTagName("p")[0].setAttribute("style","color:blue");
                
                var atr=document.createAttribute("class");
                atr.nodeValue="myclass";
                var h=document.getElementsByTagName("p")[1];
                h.setAttributeNode(atr); 
            }
        </script>
    </body>
    </html>

        

    (16) element.removeChild(): 删除一个子元素
      element.replaceChild(): 替换一个子元素

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>myTest</title>
    <meta charset="utf-8" />
    </head>
    <body id="b1" lang="en-us">
        <ul id="myList"><li>AAA</li><li>BBB</li><li>CCC</li></ul>
        <button id="btn1" onclick="my_Test()">按钮</button>
        <button id="btn2" onclick="my_Test2()">按钮2</button>
        <script type="text/javascript">
            function my_Test(){
                var list=document.getElementById("myList");
                list.removeChild(list.childNodes[0]);
            }
            function my_Test2(){
                var textnode=document.createTextNode("DDD");
                var item=document.getElementById("myList").childNodes[0];
                item.replaceChild(textnode,item.childNodes[0]);
            }
        </script>
    </body>
    </html>

        

  • 相关阅读:
    C语言I博客作业05
    C语言I博客作业04
    C语言II博客作业04
    C语言II博客作业03
    C语言II博客作业02
    C语言II博客作业01
    学期总结
    C语言I博客作业07
    C语言I博客作业04
    C语言II博客作业04
  • 原文地址:https://www.cnblogs.com/ChengWenHao/p/JavascriptPart12.html
Copyright © 2011-2022 走看看