zoukankan      html  css  js  c++  java
  • 前端基础之JavaScript_(3)_DOM对象

    JavaScript之DOM对象

    HTML  DOM

    •     HTML  Document Object Model(文档对象模型)

    •     HTML DOM 定义了访问和操作HTML文档的标准方法

    •     HTML DOM 把 HTML 文档呈现为带有元素、属性和文本的树结构(节点树)

    DOM树

                                

    画dom树是为了展示文档中各个对象之间的关系,用于对象的导航。

    DOM节点

    节点类型

    HTML 文档中的每个成分都是一个节点。

    DOM 是这样规定的:

    • 整个文档是一个文档节点 
    • 每个 HTML 标签是一个元素节点 
    • 包含在 HTML 元素中的文本是文本节点 
    • 每一个 HTML 属性是一个属性节点

     

    其中,document与element节点是重点。

     

    节点树中的节点彼此拥有层级关系。
    父(parent),子(child)和同胞(sibling)等术语用于描述这些关系。父节点拥有子节点。同级的子节点被称为同胞(兄弟或姐妹)。

    •     在节点树中,顶端节点被称为根(root)
    •     每个节点都有父节点、除了根(它没有父节点)
    •     一个节点可拥有任意数量的子
    •     同胞是拥有相同父节点的节点

     下面的图片展示了节点树的一部分,以及节点之间的关系:

     

    访问 HTML 元素(节点),访问 HTML 元素等同于访问节点,我们能够以不同的方式来访问 HTML 元素。

     

    *节点查找

     直接查找节点

    document.getElementById(“idname”)           //document  为查找范围,表示从全文查找
    document.getElementsByTagName(“tagname”)
    document.getElementsByName(“name”)
    document.getElementsByClassName(“name”)
     
    <div id="div1">
    
        <div class="div2">i am div2</div>
        <div name="yuan">i am div2</div>
        <div id="div3">i am div2</div>
        <p>hello p</p>
    </div>
    
    <script>
    
       var div1=document.getElementById("div1");
    
    ////支持;
    //   var ele= div1.getElementsByTagName("p");
    //   alert(ele.length);
    ////支持
    //   var ele2=div1.getElementsByClassName("div2");
    //   alert(ele2.length);
    ////不支持
    //   var ele3=div1.getElementById("div3");
    //   alert(ele3.length);
    ////不支持
    //   var ele4=div1.getElementsByName("yuan");
    //   alert(ele4.length)
    
    </script>
    局部查找

    注意:设计到寻找元素,注意<script>标签的位置!

    导航节点属性:       调用者为节点标签(格式:NodeElement.children)

    parentElement           // 父节点标签元素
    
    children                // 所有子标签
    
    firstElementChild       // 第一个子标签元素
    
    lastElementChild        // 最后一个子标签元素
    
    nextElementSibling     // 下一个兄弟标签元素
    
    previousElementSibling  // 上一个兄弟标签元素

     注意,js中没有办法找到所有的兄弟标签!

    *节点操作

     创建节点:

    createElement(标签名) :创建一个指定名称的元素。
    
    例:var  tag=document.createElement(“input")
                tag.setAttribute('type','text');
    

    添加节点:  

    追加一个子节点(作为最后的子节点)
    somenode.appendChild(newnode)
     
    把增加的节点放到某个节点的前边
    somenode.insertBefore(newnode,某个节点);
    

    删除节点:

    removeChild():获得要删除的元素,通过父元素调用删除
    

    替换节点:

    somenode.replaceChild(newnode, 某个节点);
    

    节点属性操作:

    1、获取文本节点的值:innerText    innerHTML

    2、attribute操作

    elementNode.setAttribute(name,value)    
    
    elementNode.getAttribute(属性名)        <-------------->elementNode.属性名(DHTML)
    
    elementNode.removeAttribute(“属性名”);
    

    3、value获取当前选中的value值
            1.input   
            2.select (selectedIndex)
            3.textarea  
    4、innerHTML 给节点添加html代码:
            该方法不是w3c的标准,但是主流浏览器支持    
            tag.innerHTML = “<p>要显示内容</p>”;

    5、关于class的操作:

    elementNode.className
    elementNode.classList.add
    elementNode.classList.remove
    

    6、改变css样式: 

    <p id="p2">Hello world!</p>
    document.getElementById("p2").style.color="blue";
                                 .style.fontSize=48px
    

    DOM Event(事件)

    事件类型

    onclick        当用户点击某个对象时调用的事件句柄。
    ondblclick     当用户双击某个对象时调用的事件句柄。
    
    onfocus        元素获得焦点。               练习:输入框
    onblur         元素失去焦点。               应用场景:用于表单验证,用户离开某个输入框时,代表已经输入完了,我们可以对它进行验证.
    onchange       域的内容被改变。             应用场景:通常用于表单元素,当元素内容被改变时触发.(三级联动)
    
    onkeydown      某个键盘按键被按下。          应用场景: 当用户在最后一个输入框按下回车按键时,表单提交.
    onkeypress     某个键盘按键被按下并松开。
    onkeyup        某个键盘按键被松开。
    
    onload         一张页面或一幅图像完成加载。
    
    onmousedown    鼠标按钮被按下。
    onmousemove    鼠标被移动。
    onmouseout     鼠标从某元素移开。
    onmouseover    鼠标移到某元素之上。
    onmouseleave   鼠标从元素离开
    
    onselect       文本被选中。
    onsubmit       确认按钮被点击。
    

    绑定事件方式

    方式1:  

    <div id="div" onclick="foo(this)">点我呀</div>
    
    <script>
        function foo(self){           // 形参不能是this;
            console.log("点你大爷!");
            console.log(self);   
        }
    </script>
    

    方式2:  

    <p id="abc">试一试!</p>
    
    <script>
    
        var ele=document.getElementById("abc");
    
        ele.onclick=function(){
            console.log("ok");
            console.log(this);    // this直接用
        };
    
    </script>
    

    事件介绍

    1、onload:

    onload 属性开发中 只给 body元素加.这个属性的触发 标志着 页面内容被加载完成.应用场景: 当有些事情我们希望页面加载完立刻执行,那么可以使用该事件属性.

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    
        <script>
             /*
                  window.onload=function(){
                       var ele=document.getElementById("ppp");
                       ele.onclick=function(){
                       alert(123)
                    };
                 };
             
             */
    
    
    
              function fun() {
                  var ele=document.getElementById("ppp");
                   ele.onclick=function(){
                    alert(123)
                };
              }
    
        </script>
    </head>
    <body onload="fun()">
    
    <p id="ppp">hello p</p>
    
    </body>
    </html>
    View Code

    2、onsubmit:

    当表单在提交时触发. 该属性也只能给form元素使用.应用场景: 在表单提交前验证用户输入是否正确.如果验证失败.在该方法中我们应该阻止表单的提交.

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    
        <script>
    
            window.onload=function(){
                //阻止表单提交方式1().
                //onsubmit 命名的事件函数,可以接受返回值. 其中返回false表示拦截表单提交.其他为放行.
    
                 var ele=document.getElementById("form");
                 ele.onsubmit=function(event) {
                //    alert("验证失败 表单不会提交!");
                //    return false;
    
                // 阻止表单提交方式2 event.preventDefault(); ==>通知浏览器不要执行与事件关联的默认动作。
                 alert("验证失败 表单不会提交!");
                 event.preventDefault();
    
        }
    
            };
    
        </script>
    </head>
    <body>
    
    <form id="form">
                <input type="text"/>
                <input type="submit" value="点我!" />
    </form>
    
    </body>
    </html>
    View Code

    3、事件传播:

    <div id="abc_1" style="border:1px solid red;300px;height:300px;">
            <div id="abc_2" style="border:1px solid red;200px;height:200px;">
    
            </div>
    </div>
    
    <script type="text/javascript">
            document.getElementById("abc_1").onclick=function(){
                alert('111');
            };
            document.getElementById("abc_2").onclick=function(event){
                alert('222');
                event.stopPropagation(); //阻止事件向外层div传播.
            }
    </script>
    View Code

    4、onselect:

    <input type="text">
    
    <script>
        var ele=document.getElementsByTagName("input")[0];
    
        ele.onselect=function(){
              alert(123);
        }
    
    </script>
    View Code

    5、onchange:

    <select name="" id="">
        <option value="">111</option>
        <option value="">222</option>
        <option value="">333</option>
    </select>
    
    <script>
        var ele=document.getElementsByTagName("select")[0];
    
        ele.onchange=function(){
              alert(123);
        }
    
    </script>
    View Code

    6、onkeydown:

    Event 对象:Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。
    事件通常与函数结合使用,函数不会在事件发生前被执行!event对象在事件发生时系统已经创建好了,并且会在事件函数被调用时传给事件函数.我们获得仅仅需要接收一下即可.比如onkeydown,我们想知道哪个键被按下了,需要问下event对象的属性,这里就时KeyCode.

    <input type="text" id="t1"/>
    
    <script type="text/javascript">
    
        var ele=document.getElementById("t1");
    
        ele.onkeydown=function(e){
    
            e=e||window.event;
    
            var keynum=e.keyCode;
            var keychar=String.fromCharCode(keynum);
    
            alert(keynum+'----->'+keychar);
    
        };
    
    </script>
    View Code

    7、onmouseout与onmouseleave事件的区别:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            #container{
                 300px;
            }
            #title{
                cursor: pointer;
                background: #ccc;
            }
           #list{
               display: none;
               background:#fff;
           }
    
            #list div{
                line-height: 50px;
            }
            #list  .item1{
                background-color: green;
            }
    
             #list  .item2{
                background-color: rebeccapurple;
            }
    
             #list  .item3{
                background-color: lemonchiffon;
            }
    
    
        </style>
    </head>
    <body>
    
    
    <p>先看下使用mouseout的效果:</p>
    
    <div id="container">
            <div id="title">使用了mouseout事件↓</div>
            <div id="list">
                    <div class="item1">第一行</div>
                    <div class="item2">第二行</div>
                    <div class="item3">第三行</div>
            </div>
    </div>
    
    
    <script>
    
    // 1.不论鼠标指针离开被选元素还是任何子元素,都会触发 mouseout 事件。
    
    // 2.只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件。
    
       var container=document.getElementById("container");
       var title=document.getElementById("title");
       var list=document.getElementById("list");
    
    
       title.onmouseover=function(){
           list.style.display="block";
       };
    
       container.onmouseleave=function(){  // 改为mouseout试一下
           list.style.display="none";
       };
    
    /*
    
    因为mouseout事件是会冒泡的,也就是onmouseout事件可能被同时绑定到了container的子元素title和list
    上,所以鼠标移出每个子元素时也都会触发我们的list.style.display="none";
    
    */
    
    
      /*
      思考:
      if:
    
           list.onmouseout=function(){
               list.style.display="none";
       };
    
    
         为什么移出第一行时,整个list会被隐藏?
    
         其实是同样的道理,onmouseout事件被同时绑定到list和它的三个子元素item上,所以离开任何一个
         子元素同样会触发list.style.display="none";
    
       */
    
    </script>
    </body>
    </html>
    View Code

    实例练习

    1、搜索框

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    
    
    <script>
    
    function Focus(){
    
        var input=document.getElementById("ID1");
        if (input.value=="请输入用户名"){
            input.value="";
        }
    
    }
    
    function Blurs(){
    
        var ele=document.getElementById("ID1");
        var val=ele.value;
        if(!val.trim()){
    
            ele.value="请输入用户名";
        }
    }
    
    </script>
    </head>
    <body>
        <input id="ID1" type="text" value="请输入用户名" onblur="Blurs()" onfocus="Focus()">
    </body>
    </html>
    View Code

    2、模态对话框

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .back{
                background-color: white;
                height: 2000px;
            }
    
            .shade{
                position: fixed;
                top: 0;
                bottom: 0;
                left:0;
                right: 0;
                background-color: grey;
                opacity: 0.4;
            }
    
            .hide{
                display: none;
            }
    
            .models{
                position: fixed;
                top: 50%;
                left: 50%;
                margin-left: -100px;
                margin-top: -100px;
                height: 200px;
                 200px;
                background-color: wheat;
    
            }
        </style>
    </head>
    <body>
    <div class="back">
        <input class="c" type="button" value="click">
    </div>
    
    <div class="shade hide handles"></div>
    
    <div class="models hide handles">
        <input class="c" type="button" value="cancel">
    </div>
    
    
    <script>
    
    
        var eles=document.getElementsByClassName("c");
        var handles=document.getElementsByClassName("handles");
        for(var i=0;i<eles.length;i++){
            eles[i].onclick=function(){
    
                if(this.value=="click"){
    
                    for(var j=0;j<handles.length;j++){
    
                        handles[j].classList.remove("hide");
    
                     }
    
                }
                else {
                    for(var j=0;j<handles.length;j++){
    
                        handles[j].classList.add("hide");
                    }
    
                }
            }
        }
    
    </script>
    
    </body>
    </html>
    View Code

    3、表格案例

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    
    <button class="select_all">全选</button>
    <button class="select_reverse">反选</button>
    <button class="cancel">取消</button>
    
    <hr>
    
    <table class="server_table" border="2px" cellspacing="2px">
        <tr>
            <td><input type="checkbox" class="item"></td>
            <td>111</td>
            <td>111</td>
            <td>111</td>
        </tr>
        <tr>
            <td><input type="checkbox" class="item"></td>
            <td>222</td>
            <td>222</td>
            <td>222</td>
        </tr>
        <tr>
            <td><input type="checkbox" class="item"></td>
            <td>333</td>
            <td>333</td>
            <td>333</td>
        </tr>
        <tr>
            <td><input type="checkbox" class="item"></td>
            <td>444</td>
            <td>444</td>
            <td>444</td>
        </tr>
    </table>
    
    
    <script>
    /*
        var ele_all=document.getElementsByClassName("select_all")[0];
        var ele_reverse=document.getElementsByClassName("select_reverse")[0];
        var ele_cancel=document.getElementsByClassName("cancel")[0];
        var input_arr=document.getElementsByClassName("item");
    
        ele_all.onclick=function(){
              for(var i=0;i<input_arr.length;i++){
                  console.log(input_arr[i]);
                  var input=input_arr[i];
                  input.checked=true;
              }
        };
    
         ele_cancel.onclick=function(){
              for(var i=0;i<input_arr.length;i++){
                  console.log(input_arr[i]);
                  var input=input_arr[i];
                  input.checked=false;
              }
        };
    
        ele_reverse.onclick=function(){
              for(var i=0;i<input_arr.length;i++){
                  console.log(input_arr[i]);
                  var input=input_arr[i];
                  if(input.checked){
                      input.checked=false;
                  }
                  else{
                      input.checked=true;
                  }
              }
        };
    
    */
    
    
        var input_arr=document.getElementsByClassName("item");
        var button_arr=document.getElementsByTagName("button");
    
        for(var i=0;i<button_arr.length;i++){
    
            button_arr[i].onclick=function(){
    
    
                for (var j=0;j<input_arr.length;j++){
                     var inp=input_arr[j]
                     if(this.innerText=="全选"){
                         console.log("ok");
                     inp.checked=true;
                 }
                else if(this.innerText=="取消"){
                      inp.checked=false;
                 }
                else {
                     if(inp.checked){
                         inp.checked=false;
                     }else {
                         inp.checked=true;
                     }
                 }
                    
                }
            }
    
        }
    </script>
    </body>
    </html>
    View Code

    4、select移动

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    
        <style>
            .outer{
                margin: 0 auto;
                background-color: darkgray;
                 80%;
                height: 600px;margin-top: 30px;
                word-spacing: -5px;
    
            }
    
            #left{
                display: inline-block;
                 100px ;
                height: 140px;
                background-color: wheat;
                text-align: center;
    
    
            }
    
            #choice{
                display: inline-block;
                height: 140px;
                background-color: darkolivegreen;
    
                vertical-align: top;
                padding:0 5px;
    
    
            }
    
            #choice button{
                margin-top: 20px;
            }
    
             #right{
                display: inline-block;
                 100px ;
                height: 140px;
                background-color: wheat;
                text-align: center;
                line-height: 140px;
    
            }
    
        </style>
    </head>
    <body>
    
    
    
    <div class="outer">
    
        <select multiple="multiple" size="5" id="left">
        <option>红楼梦</option>
        <option>西游记</option>
        <option>水浒传</option>
        <option>JinPingMei</option>
        <option>三国演义</option>
    </select>
    
    
    
    
    <span id="choice">
        <button id="choose_move"> > </button><br>
        <button id="all_move"> >> </button>
    </span>
    
    
    
    <select multiple="multiple" size="10" id="right">
        <option>放风筝的人</option>
    </select>
    
    
    </div>
    
    
    
    
    <script>
    
        var choose_move=document.getElementById("choose_move");
        var all_move=document.getElementById("all_move");
    
        var right=document.getElementById("right");
        var left=document.getElementById("left");
        var options=left.options;
    
    
    
        choose_move.onclick=function(){
    
            for (var i=0; i<options.length;i++){
    
                 var option=options[i];
                 if(option.selected==true){
    
                       // var news=option.cloneNode(true);
                       // console.log(news);
    
                       right.appendChild(option);
                       i--;
                 }
             }
        };
    
        all_move.onclick=function(){
    
            for (var i=0; i<options.length;i++){
    
                 var option=options[i];
    
                       right.appendChild(option);
                       i--;
    
             };
        };
    
    
    
    
        /*
       var buttons=document.getElementsByTagName("button");
       for(var i=0;i<buttons.length;i++) {
            buttons[i].onclick = function () {
    
                for (var i = 0; i < options.length; i++) {
    
                    var option = options[i];
    
                    if (this.innerText == ">") {
                        if (option.selected == true) {
    
                            // var news=option.cloneNode(true);
                            // console.log(news);
    
                            right.appendChild(option);
                            i--;
                        }
                    } else {
                        right.appendChild(option);
                        i--;
                    }
                }
            };
        }
    
    
       */
    
    
    </script>
    
    
    </body>
    </html>
    View Code

    5、二级联动

    <select id="province">
        <option>请选择省:</option>
    </select>
    
    <select id="city">
        <option>请选择市:</option>
    </select>
    
    
    <script>
        data={"河北省":["廊坊","邯郸"],"北京":["朝阳区","海淀区"]};
    
    
          var p=document.getElementById("province");
          var c=document.getElementById("city");
        
        for(var i in data){
            var option_pro=document.createElement("option");
    
            option_pro.innerHTML=i;
    
            p.appendChild(option_pro);
        }
         p.onchange=function(){
    
                pro=(this.options[this.selectedIndex]).innerHTML;
                citys=data[pro];
    
             c.options.length=0;
    
             for (var i in citys){
                 var option_city=document.createElement("option");
                 option_city.innerHTML=citys[i];
                 c.appendChild(option_city);
             }
    
            }
    </script>
    View Code

    6、跑马灯与tab切换

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>tab</title>
      <style>
        *{margin:0; padding:0; list-style:none;}
        body{
            font-family: "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei", "9ED14F53", Arial, sans-serif;
        }
        h3{
            text-align: center;
            color:darkcyan;
            margin-top: 30px;
            letter-spacing: 5px;
        }
        .box{
           1000px;
          margin:50px auto 0px;
        }
        #title{
          line-height: 40px;
          background-color: rgb(247,247,247);
          font-size: 16px;
          font-weight: bold;
          color: rgb(102,102,102);
        }
        #title span{
          float: left;
           166px;
          text-align: center;
        }
        #title span:hover{
          /*color: black;*/
          cursor: pointer;
        }
        #content{
          margin-top: 20px;
        }
        #content li{
           1050px;
          display: none;
          background-color: rgb(247,247,247);
        }
        #content li div{
           156px;
          margin-right: 14px;
          float: left;
          text-align: center;
        }
        #content li div a{
          font-size: 14px;
          color: black;
          line-height: 14px;
        /*  float: left;*/
        display: inline-block;
          margin-top: 10px;
        }
        #content li a:hover{
          color: #B70606;
        }
        #content li div span{
            font-size: 16px;
            line-height: 16px;
            /*float: left;*/
            display: block;
            color: rgb(102,102,102);
            margin-top: 10px;
          }
        #content img{
          float: left;
           155px;
          height: 250px;
        }
        #title .select{
          background-color: #2459a2;
          color: white;
            border-radius: 10%;
        }
        #content .show{
          display: block;
        }
    
        .show span{
            color: red!important;
            font-size: 30px;
        }
      </style>
    </head>
    
    <body>
        <h3 id="wel">京东商城欢迎您</h3>
        <!--  direction="right up down left" -->
    <!--  behavior:滚动方式(包括3个值:scroll、slide、alternate) -->
    <!--  说明:scroll:循环滚动,默认效果;slide:只滚动一次就停止;alternate:来回交替进行滚动。 -->
    <!--  scrollamount="5" 滚动速度 -->
    
    <marquee behavior="scroll" direction="right">欢迎您苑昊先生</marquee>
        <script>
    
        function test(){
    
            var mywel = document.getElementById("wel");
            var content = mywel.innerText;
    
            var f_content = content.charAt(0);
            var l_content = content.substring(1,content.length);
    
            var new_content = l_content + f_content;
            mywel.innerText = new_content;
    
        }
    
        // setInterval("test();", 500);
    </script>
        <div class="box">
          <p id="title">
            <span class="select">家用电器</span>
            <span>家具</span>
            <span>汽车</span>
            <span>食品</span>
            <span>女鞋</span>
            <span>医疗保健</span>
          </p>
    
          <ul id="content">
            <li class="show">
    
              <div><img src="https://img10.360buyimg.com/n1/s450x450_jfs/t4786/325/2470647304/119102/9e1a4ed5/59005841Nd786a8df.jpg" alt="冰箱"><a href="#">容声(Ronshen)冰箱</a><span>价格:5600</span></div>
              <div><img src="https://img12.360buyimg.com/n1/s450x450_jfs/t3037/347/1290968859/201366/7c1028a0/57c00194N9d0a54c6.jpg" alt="洗衣机"><a href="#">海尔洗衣机</a><span>价格:5400</span></div>
              <div><img src="https://img11.360buyimg.com/n1/jfs/t3289/128/2393835119/236360/af1d283b/57e0f300N53dde603.jpg" alt="电饭煲"><a href="#">福库(CUCKOO)电饭煲</a><span>价格:3999</span></div>
              <div><img src="https://img13.360buyimg.com/n1/jfs/t3235/137/2361713777/152258/a6908440/57e098c2N44a90a5d.jpg" alt="智能电视"><a href="#">三星智能电视</a><span>价格:8999</span></div>
              <div><img src="https://img10.360buyimg.com/n1/jfs/t2053/101/1391591157/215066/572e131b/5696ee9bN2376492d.jpg" alt="净水器"><a href="#">净水器</a><span>价格:1300</span></div>
              <div><img src="https://img14.360buyimg.com/n1/jfs/t3175/78/2357430273/262835/9a8e7f65/57e0a3e9Nbda39dd2.jpg" alt="空气净化器"><a href="#">空气净化器</a><span>价格:5300</span></div>
            </li>
    
            <li>
    
              <div><img src="https://img12.360buyimg.com/n1/jfs/t1948/172/2877517581/556924/682eb107/56f63dc8Naddf77e5.jpg" alt="沙发"><a href="#">沙发</a><span>价格:2900</span></div>
              <div><img src="https://img12.360buyimg.com/n1/jfs/t1948/172/2877517581/556924/682eb107/56f63dc8Naddf77e5.jpg" alt="沙发"><a href="#">沙发</a><span>价格:2900</span></div>
              <div><img src="https://img12.360buyimg.com/n1/jfs/t1948/172/2877517581/556924/682eb107/56f63dc8Naddf77e5.jpg" alt="沙发"><a href="#">沙发</a><span>价格:2900</span></div>
              <div><img src="https://img12.360buyimg.com/n1/jfs/t1948/172/2877517581/556924/682eb107/56f63dc8Naddf77e5.jpg" alt="沙发"><a href="#">沙发</a><span>价格:2900</span></div>
              <div><img src="https://img12.360buyimg.com/n1/jfs/t1948/172/2877517581/556924/682eb107/56f63dc8Naddf77e5.jpg" alt="沙发"><a href="#">沙发</a><span>价格:2900</span></div>
              <div><img src="https://img12.360buyimg.com/n1/jfs/t1948/172/2877517581/556924/682eb107/56f63dc8Naddf77e5.jpg" alt="沙发"><a href="#">沙发</a><span>价格:2900</span></div>
    
            </li>
            <li>
              <div><img src="http://img11.360buyimg.com/n1/jfs/t4969/76/45396935/144539/347153d4/58d9cff4N36872ad6.jpg" alt="长安汽车"><a href="#">长安汽车</a><span>价格:12900</span></div>
              <div><img src="http://img11.360buyimg.com/n1/jfs/t4969/76/45396935/144539/347153d4/58d9cff4N36872ad6.jpg" alt="长安汽车"><a href="#">长安汽车</a><span>价格:12900</span></div>
              <div><img src="http://img11.360buyimg.com/n1/jfs/t4969/76/45396935/144539/347153d4/58d9cff4N36872ad6.jpg" alt="长安汽车"><a href="#">长安汽车</a><span>价格:12900</span></div>
              <div><img src="http://img11.360buyimg.com/n1/jfs/t4969/76/45396935/144539/347153d4/58d9cff4N36872ad6.jpg" alt="长安汽车"><a href="#">长安汽车</a><span>价格:12900</span></div>
              <div><img src="http://img11.360buyimg.com/n1/jfs/t4969/76/45396935/144539/347153d4/58d9cff4N36872ad6.jpg" alt="长安汽车"><a href="#">长安汽车</a><span>价格:12900</span></div>
              <div><img src="http://img11.360buyimg.com/n1/jfs/t4969/76/45396935/144539/347153d4/58d9cff4N36872ad6.jpg" alt="长安汽车"><a href="#">长安汽车</a><span>价格:12900</span></div>
            </li>
            <li>
    
              <div><img src="https://img14.360buyimg.com/n1/jfs/t4414/110/2582917360/207971/b7e129ad/58f0ee1fN94425de1.jpg" alt="嘉兴粽子"><a href="#">嘉兴粽子</a><span>价格:1</span></div>
              <div><img src="https://img14.360buyimg.com/n1/jfs/t4414/110/2582917360/207971/b7e129ad/58f0ee1fN94425de1.jpg" alt="嘉兴粽子"><a href="#">嘉兴粽子</a><span>价格:1</span></div>
              <div><img src="https://img14.360buyimg.com/n1/jfs/t4414/110/2582917360/207971/b7e129ad/58f0ee1fN94425de1.jpg" alt="嘉兴粽子"><a href="#">嘉兴粽子</a><span>价格:1</span></div>
              <div><img src="https://img14.360buyimg.com/n1/jfs/t4414/110/2582917360/207971/b7e129ad/58f0ee1fN94425de1.jpg" alt="嘉兴粽子"><a href="#">嘉兴粽子</a><span>价格:1</span></div>
              <div><img src="https://img14.360buyimg.com/n1/jfs/t4414/110/2582917360/207971/b7e129ad/58f0ee1fN94425de1.jpg" alt="嘉兴粽子"><a href="#">嘉兴粽子</a><span>价格:1</span></div>
              <div><img src="https://img14.360buyimg.com/n1/jfs/t4414/110/2582917360/207971/b7e129ad/58f0ee1fN94425de1.jpg" alt="嘉兴粽子"><a href="#">嘉兴粽子</a><span>价格:1</span></div>
    
            </li>
            <li>
    
              <div><img src="https://img14.360buyimg.com/n1/jfs/t3079/298/5759209435/92674/14818594/587f1c33N53e5d2a9.jpg" alt="星期六"><a href="#">星期六</a><span>价格:439</span></div>
              <div><img src="https://img14.360buyimg.com/n1/jfs/t3079/298/5759209435/92674/14818594/587f1c33N53e5d2a9.jpg" alt="星期六"><a href="#">星期六</a><span>价格:439</span></div>
              <div><img src="https://img14.360buyimg.com/n1/jfs/t3079/298/5759209435/92674/14818594/587f1c33N53e5d2a9.jpg" alt="星期六"><a href="#">星期六</a><span>价格:439</span></div>
              <div><img src="https://img14.360buyimg.com/n1/jfs/t3079/298/5759209435/92674/14818594/587f1c33N53e5d2a9.jpg" alt="星期六"><a href="#">星期六</a><span>价格:439</span></div>
              <div><img src="https://img14.360buyimg.com/n1/jfs/t3079/298/5759209435/92674/14818594/587f1c33N53e5d2a9.jpg" alt="星期六"><a href="#">星期六</a><span>价格:439</span></div>
              <div><img src="https://img14.360buyimg.com/n1/jfs/t3079/298/5759209435/92674/14818594/587f1c33N53e5d2a9.jpg" alt="星期六"><a href="#">星期六</a><span>价格:439</span></div>
    
            </li>
            <li>
    
              <div><img src="https://img12.360buyimg.com/n1/jfs/t5755/127/1139389729/356866/99d4e869/5923e410Nb2983f70.jpg" alt="汇仁 肾宝片"><a href="#">汇仁 肾宝片</a><span>价格:322</span></div>
              <div><img src="https://img12.360buyimg.com/n1/jfs/t5755/127/1139389729/356866/99d4e869/5923e410Nb2983f70.jpg" alt="汇仁 肾宝片"><a href="#">汇仁 肾宝片</a><span>价格:322</span></div>
              <div><img src="https://img12.360buyimg.com/n1/jfs/t5755/127/1139389729/356866/99d4e869/5923e410Nb2983f70.jpg" alt="汇仁 肾宝片"><a href="#">汇仁 肾宝片</a><span>价格:322</span></div>
              <div><img src="https://img12.360buyimg.com/n1/jfs/t5755/127/1139389729/356866/99d4e869/5923e410Nb2983f70.jpg" alt="汇仁 肾宝片"><a href="#">汇仁 肾宝片</a><span>价格:322</span></div>
              <div><img src="https://img12.360buyimg.com/n1/jfs/t5755/127/1139389729/356866/99d4e869/5923e410Nb2983f70.jpg" alt="汇仁 肾宝片"><a href="#">汇仁 肾宝片</a><span>价格:322</span></div>
              <div><img src="https://img12.360buyimg.com/n1/jfs/t5755/127/1139389729/356866/99d4e869/5923e410Nb2983f70.jpg" alt="汇仁 肾宝片"><a href="#">汇仁 肾宝片</a><span>价格:322</span></div>
    
            </li>
    
    
          </ul>
        </div>
    
        <script>
          var title=document.getElementById('title');
          var content=document.getElementById('content');
          var category=title.getElementsByTagName('span');
          var item=content.getElementsByTagName('li');
    
          for (var i = 0; i < category.length; i++) {
    
              category[i].index=i;
    
              category[i].onclick=function(){
    
                for (var j = 0; j < category.length; j++) {
                  category[j].className='';
                  item[j].className='';
                }
                this.className='select';
                item[this.index].className='show';
              }
    
    
          }
    
        </script>
    </body>
    </html>
    View Code
  • 相关阅读:
    基础算法:两数之和
    adb常用命令食用方法
    C语言面试题
    C语言经典笔试题目
    嵌入式01 51单片机实验02 sfr和sbit bit和int char
    C语言 01 volatile关键字
    C++ 01 基础知识点
    嵌入式02 STM32 实验11 NVIC和中断总结
    嵌入式02 STM32 实验10 定时器中断
    嵌入式02 STM32 实验09 独立/窗口看门狗
  • 原文地址:https://www.cnblogs.com/hedeyong/p/7325786.html
Copyright © 2011-2022 走看看