JavaScript: Advanced

时间:2024-04-11 17:36:11

DOM

1. 节点

JavaScript: Advanced

getElementsByName方法

 <!DOCTYPE HTML>
 <html>
 <head>
 <script type="text/javascript">
 function getnum(){
   var mynode = document.getElementsByName("myt");
   alert(mynode.length);
 }
 </script>
 </head>
 <body>
 <input name="myt" type="text" value="1">
 <input name="myt" type="text" value="2">
 <input name="myt" type="text" value="3">
 <input name="myt" type="text" value="4">
 <input name="myt" type="text" value="5">
 <input name="myt" type="text" value="6">

 <br />
 <input type="button" onclick="getnum()" value="看看有几项?" />
 </body>
 </html>

getElementsByTagName方法

 <!DOCTYPE HTML>
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 <title>JavaScript</title>
 </head>
 <body>  

         <form name="Input">
             <table align="center" width="500px" height="50%" border="1">
                 <tr>
                     <td align="center" width="100px">
                         学号:
                     </td>
                     <td align="center" width="300px">
                         <input type="text" id=userid name="user" onblur="validate();">
                         <div id=usermsg></div>
                     </td>
                 </tr>
                 <tr>
                     <td align="center" width="100px">
                         姓名:
                     </td>
                         <td align="center">
                         <input type="text" name="name">
                     </td>
                 </tr>
                 <tr>
                     <td align="center" width="%45">
                         性别:
                     </td>
                     <td align="center">
                         <input type="radio" name="sex" value="男">
                         男
                         <input type="radio" name="sex" value="女">
                         女
                     </td>
                 </tr>
                 <tr>
                     <td align="center" width="30%">
                         年龄:
                     </td>
                     <td align="center" width="300px">
                         <input type="text" name="age">
                     </td>
                 </tr>
                 <tr>
                     <td align="center" width="100px">
                         地址:
                     </td>
                     <td align="center" width="300px">
                         <input type="text" name="addr">
                     </td>
                 </tr>

             </table>
         </form>
         <h1 id="myHead" onclick="getValue()">
             看看三种获取节点的方法?
         </h1>
         <p>
             点击标题弹出它的值。
         </p>
         <input type="button" onclick="getElements()"
             value="看看name为sex的节点有几个?" />
         <Br>
         <input type="button" onclick="getTagElements()"
             value="看看标签名为input的节点有几个?" />

      <script type="text/javascript">
          function getValue()
           {
               var myH = document.getElementById("myHead");
               alert(myH.innerHTML)
           }
           function getElements()
           {
              var myS = document.getElementsByName("sex");
               alert(myS.length);
           }

           function getTagElements()
           {
               var myI = document.getElementsByTagName("input");
               alert(myI.length);
           }

      </script>        

     </body>
 </html>
 <!DOCTYPE HTML>
 <html>
     <head>
         <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
         <title>无标题文档</title>
     </head>

     <body>
         <form>
           请选择你爱好:<br>
           <input type="checkbox" name="hobby" id="hobby1">  音乐
           <input type="checkbox" name="hobby" id="hobby2">  登山
           <input type="checkbox" name="hobby" id="hobby3">  游泳
           <input type="checkbox" name="hobby" id="hobby4">  阅读
           <input type="checkbox" name="hobby" id="hobby5">  打球
           <input type="checkbox" name="hobby" id="hobby6">  跑步 <br>
           <input type="button" value = "全选" onclick = "checkall();">
           <input type="button" value = "全不选" onclick = "clearall();">
           <p>请输入您要选择爱好的序号,序号为1-6:</p>
           <input id="wb" name="wb" type="text" >
           <input name="ok" type="button" value="确定" onclick = "checkone();">
         </form>
         <script type="text/javascript">
         function checkall(){
             var hobby = document.getElementsByTagName("input");

           // 任务1
           for(var i = 0; i < hobby.length; i++) {
               if (hobby[i].type == "checkbox") hobby[i].checked = true;
           }

         }
         function clearall(){
             var hobby = document.getElementsByName("hobby");

          // 任务2
          for (var i = 0; i < hobby.length; i++) {
              if (hobby[i].type == "checkbox") hobby[i].checked = false;
          }

         }

         function checkone(){
             //var hobby = document.getElementsByName("hobby");
             var j=document.getElementById("wb").value;
             var m = document.getElementById("hobby"+j);
             m.checked = true;
             //hobby[parseInt(j)].checked = true;
          // 任务3

         }

         </script>
     </body>
 </html>

getAttribute()方法

 <!DOCTYPE HTML>
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <title>getAttribute()</title>
 </head>
 <body>
 <p id="intro">课程列表</p>
     <ul>
         <li title="第1个li">HTML</li>
         <li>CSS</li>
         <li title="第3个li">JavaScript</li>
         <li title="第4个li">Jquery</li>
         <li>Html5</li>
     </ul>
 <p>以下为获取的不为空的li标签title值:</p>
 <script type="text/javascript">
     var con=document.getElementsByTagName("li");
     for (var i=0; i< con.length;i++){
       var text = con[i].getAttribute("title");
       if(text!=null)
       {
         document.write(text+"<br>");
       }
     }
  </script>
 </body>
 </html>

setAttribute方法

 <!DOCTYPE HTML>
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <title>无标题文档</title>
 </head>
 <body>
   <p id="intro">我的课程</p>
   <ul>
     <li title="JS">JavaScript</li>
     <li title="JQ">JQuery</li>
     <li title="">HTML/CSS</li>
     <li title="JAVA">JAVA</li>
     <li title="">PHP</li>
   </ul>
   <h1>以下为li列表title的值,当title为空时,新设置值为"WEB前端技术":</h1>
 <script type="text/javascript">
   var Lists=document.getElementsByTagName("li");
   for (var i=0; i<Lists.length;i++)
   {
     var text = Lists[i].getAttribute("title");
     document.write(text +"<br>");
     if(text=="")
     {
     Lists[i].setAttribute("title", "WEB前端技术");
     document.write(Lists[i].getAttribute("title")+"<br>");
     }
   }
 </script>
 </body>
 </html>

节点属性

 <!DOCTYPE HTML>
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <title>节点属性</title>
 </head>
 <body>
   <ul>
      <li>javascript</li>
      <li>HTML/CSS</li>
      <li>jQuery</li>
   </ul>
   <script type="text/javascript">
     var text = document.getElementsByTagName("li");
     for (var i = 0; i < text.length; i++) {
         document.write(text[i].nodeName+"<br>");
         document.write(text[i].nodeValue+"<br>");
         document.write(text[i].nodeType+"<br>");
     }
   </script>
 </body>
 </html>

childNodes

 <!DOCTYPE HTML>
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <title>无标题文档</title>
 </head>
 <body>
 <div>
   javascript
   <p>javascript</p>
   <div>jQuery</div>
   <h5>PHP</h5>
 </div>
 <script type="text/javascript">
   var x = document.getElementsByTagName("div")[0].childNodes;
   for (var i = 0; i < x.length; i++) {
       document.write(x[i].nodeName+"<br>");
       document.write(x[i].nodeValue+"<br>");
       document.write(x[i].nodeType+"<br>");
   }

 </script>
 </body>
 </html>

firstChild和lastChild

 <!DOCTYPE HTML>
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <title>无标题文档</title>
 </head>
 <body>
 <div id="con">
   <p>javascript</p>
   <div>jQuery</div>
   <h5>PHP</h5>
 </div>
 <script type="text/javascript">
   var x=document.getElementById("con");
   document.write(x.firstChild.nodeName+"<br>");
   document.write(x.lastChild.nodeName+"<br>");

 </script>
 </body>
 </html>

parentNode

 <!DOCTYPE HTML>
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <title>无标题文档</title>
 </head>
 <body>
 <ul id="con">
 <li id="lesson1">javascript
   <ul>
       <li id="tcon"> 基础语法</li>
       <li>流程控制语句</li>
       <li>函数</li>
       <li>事件</li>
       <li>DOM</li>
   </ul>
 </li>
 <li id="lesson2">das</li>
 <li id="lesson3">dadf</li>
 <li id="lesson4">HTML/CSS
   <ul>
     <li>文字</li>
     <li>段落</li>
     <li>表单</li>
     <li>表格</li>
   </ul>
 </li></ul>
 <script  type="text/javascript">
    var mylist = document.getElementById("tcon");
    document.write(mylist.parentNode.parentNode.parentNode.lastChild.firstChild.nodeValue)
 </script> 

 </body>
 </html>

nextSibling和previousSibling

 <!DOCTYPE HTML>
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <title>nextSibling</title>
 </head>
 <body>
 <ul id="u1">
             <li id="a">javascript</li>
             <li id="b">jquery</li>
             <li id="c">html</li>
         </ul>
         <ul id="u2">
             <li id="d">css3</li>
             <li id="e">php</li>
             <li id="f">java</li>
         </ul>
 <script type="text/javascript">
     function get_nextSibling(n){
         var x=n.nextSibling;
         while (x && x.nodeType!=1){
             x=x.nextSibling;
         }
         return x;
     }

     var x=document.getElementsByTagName("li")[0];
     document.write(x.nodeName);
     document.write(" = ");
     document.write(x.innerHTML);

     var y=get_nextSibling(x);

     if(y!=null){
         document.write("<br />nextsibling: ");
         document.write(y.nodeName);
         document.write(" = ");
         document.write(y.innerHTML);
     }else{
       document.write("<br>已经是最后一个节点");
     }

 </script>
 </body>
 </html>

appendChild()注意这里是在指定节点的子节点中增加新的子节点

 <!DOCTYPE HTML>
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <title>无标题文档</title>
 </head>
 <body>

 <ul id="test">
   <li>JavaScript</li>
   <li>HTML</li>
 </ul> 

 <script type="text/javascript">

   var otest = document.getElementById("test");
   var newnode = document.createElement("li");
   newnode.innerHTML = "PHP";
   test.appendChild(newnode);

 </script> 

 </body>
 </html>

insertBefore()在已有的子节点前插入一个新的子节点

 <!DOCTYPE HTML>
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <title>无标题文档</title>
 </head>
 <body>

 <ul id="test"><li>JavaScript</li><li>HTML</li></ul> 

 <script type="text/javascript">

   var otest = document.getElementById("test");
   var newnode = document.createElement("li");
   newnode.innerHTML = "PHP";
   test.insertBefore(newnode, test.childNodes[1]);

 </script> 

 </body>
 </html>

removeChild()

 <!DOCTYPE HTML>
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <title>无标题文档</title>
 </head>

 <body>
 <div id="content">
   <h1>html</h1>
   <h1>php</h1>
   <h1>javascript</h1>
   <h1>jquery</h1>
   <h1>java</h1>
 </div>

 <script type="text/javascript">
 function clearText() {
   var content=document.getElementById("content");
   // 在此完成该函数
   for (var i = content.childNodes.length-1; i >= 0; i--) {
       var x = content.removeChild(test.childNodes[i]);
       x = null;
   }
   /*while (content.childNodes.length > 0) {
       var x = content.removeChild(test.childNodes[0]);
       x = null;
   }*/

 }
 </script>

 <button onclick="clearText()">清除节点内容</button>

 </body>
 </html>

replaceChild()

 <!DOCTYPE HTML>
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <title>无标题文档</title>
 </head>
 <body>

   <div><b id="oldnode">JavaScript</b>是一个很常用的技术,为网页添加动态效果。</div>
   <a href="javascript:replaceMessage()"> 将加粗改为斜体</a>

     <script type="text/javascript">
       function replaceMessage(){
           var newnode = document.createElement("i");
           var oldnode = document.getElementById("oldnode");
           newnode.innerHTML = oldnode.innerHTML;
           oldnode.parentNode.replaceChild(newnode, oldnode);

        }
   </script>

  </body>
 </html>

createElement

 <!DOCTYPE HTML>
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <title>无标题文档</title>
 </head>
 <body>
 <script type="text/javascript">
 var main = document.body;
 //创建链接
 function createa(url,text)
 {
     var a = document.createElement("a");
     a.href = url;
     a.innerHTML = text;
     main.appendChild(a);
 }
 // 调用函数创建链接
 createa(" http://www.imooc.com", "慕课网");

 </script>
 </body>
 </html>

createTextNode

 <!DOCTYPE HTML>
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <title>无标题文档</title>
 <style type="text/css">

 .message{
     width:200px;
     height:100px;
     background-color:#CCC;}

 </style>
 </head>
 <body>
 <script type="text/javascript">
     var element = document.createElement("p");
     element.className = "message";
     var textNode = document.createTextNode("I love JavaScript!");
     element.appendChild(textNode);
     document.body.appendChild(element);

 </script> 

 </body>
 </html>

浏览器可视区域大小

 <!DOCTYPE HTML>
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 </head>
 <body>
 <script type="text/javascript">
     var w = document.documentElement.clientWidth || document.body.clientWidth;
     var h = document.documentElement.clientHeight || document.body.clientHeight;
     document.write(w + "<br/>");
     document.write(h + "<br/>");
 </script>
 </body>
 </html>

网页尺寸

 <!DOCTYPE HTML>
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

 </head>
 <body>
 <script type="text/javascript">
     var w=document.documentElement.scrollWidth || document.body.scrollWidth;
     var h=document.documentElement.scrollHeight || document.body.scrollHeight;
     document.write(w + "<br/>");
     document.write(h + "<br/>");
 </script>
 </body>
 </html>
 <!DOCTYPE HTML>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 </head>
 <body>
  <script type="text/javascript">
 var w= document.documentElement.offsetWidth
     || document.body.offsetWidth;
 var h= document.documentElement.offsetHeight
     || document.body.offsetHeight;
     document.write(w + "<br>");
     document.write(h + "<br>");
 </script>
 </body>
 </html>