JavaScript 11.03

JavaScript 第七天 DOM操作

1.1 什么是DOM 操作

文档Document对象Object模型Model  
​
通过js中的内置对象document对网页的内容进行增删改查。
​
增:类似与 发表说说

1.2 增

A  传统方式
<input id="bar" /><button οnclick="haha()">发表</button>
        <p id="foo">
            您还没有说说。
        </p>
        <script type="text/javascript">
            function haha(){
                //1. 动态创建
                var a= document.createElement("h1");
                //2. 优化
                a.innerHTML = bar.value;
                //3. 动态添加
                foo.appendChild(a);
            }
        </script>
B 模板方式 
   将我们要动态生成的内容提前写好 , 当我们需要发布的时候 , 我们直接将 模板动态放到页面中
   
   <style type="text/css">
    #aaa {
        border: 2px solid red;
        padding: 10px;
    }
   </style>
​
    </head>
    <body>
        
​
         <input  id="bar" /><button οnclick="haha()">发表</button>
         <p  id="foo"> </p>
         
         <script type="text/template"  id="temp">
               <div id="aaa">
                  <img src="img/pie_0.jpg"  width="50" alt="">
                            <span>张三</span> 
                            <span>发布于:XXXX</span>
                            <h6>
                                YYYY
                            </h6>
                            <button>点赞</button>
                            <button>转发</button>
                            <button>评论</button>
                            <button>举报</button>
               </div>
         </script>
         
         <script type="text/javascript">
            
            function haha(){
                  foo.innerHTML   +=  temp.innerHTML.replace( "XXXX" , new Date()  ).replace( "YYYY"  , bar.value );
            }
            
         </script>
        
​
    </body>
​
​

1.3 删

<div   id="ad"  style="width: 200px;height: 200px; padding: 10px; border: 2px solid red;">
        我是小广告
        <button  οnclick="hehe()">关闭</button>
    </div>
    
    <script type="text/javascript">
        
        function hehe(){
            ad.remove();
        }
        
    </script>

1.4 查

通过document对象获取页面内容
​
1 为什么要查询?
function hehe(){
    ad.remove();
}        
在js代码中 我们要对页面的标签进行操作,首先要获取页面标签 这就是查询操作
​
2 具体操作
​
<body>
        
    
    
         <div id="foo">
             <div          class="haha">123</div>
             <div id="bar" class="haha">
                 <span>1</span>
                 <span>2</span>
                 <span>3</span>
             </div>
             <div           class="haha">456</div>
         </div>
    
        <script type="text/javascript">
            
            // 1 根据id获取页面标签 但是我们通过id获取页面标签 一般是直接使用(id不能是关键字)
            var  a1 = document.getElementById("bar");
            
            // 2 通过class类名获取页面标签 HTMLCollection { 0: div.haha, 1: div#bar.haha, 2: div.haha, length: 3, … }  
            //   将获取的内容存储到一个集合中 并且返回  如果需要继续操作则可以根据索引编号获取
            var  a2 = document.getElementsByClassName("haha");
            
            // 3 通过标签名获取页面元素 HTMLCollection { 0: span, 1: span, 2: span, length: 3 }
            var  a3 = document.getElementsByTagName("span");
            console.log( a3 );
            
            // 4 通过选择器获取页面符合条件的第一个元素
            var a4 = document.querySelector(".haha");
            // 5 通过选择器获取页面符合条件的所有元素
            var a5 = document.querySelectorAll("div");
            
             var  b1 = bar.firstElementChild;
              var  b2 = bar.lastElementChild;
              var  b3 = bar.children;
              
              var  b4 = bar.nextElementSibling;
              var  b5 = bar.previousElementSibling;
              
              var  b6 =  bar.parentElement;
              
              var  b7 =  bar.parentElement.parentElement;
              console.log(b7)
            
        </script>

1.5 选项卡练习

<head>
        <meta charset="utf-8">
        <title></title>
        <style type="text/css">
            
            .s {
                background-color: red;
                color: green;
            }
            
        </style>
    </head>
    <body>
        
           <button  class="s"  >淘宝</button>
           <button>店铺</button>
           <button>宝贝</button>
           
           <script type="text/javascript">
                var  arr =  document.querySelectorAll( "button" );
                
                for( var i=0;i<arr.length;i++){
                   var  btn = arr[i];
                   btn.onclick = function(){
                        document.querySelector(".s").className = "";
                        /* this 指代当前事件的触发对象 哪个按钮让这个函数执行了 this就指谁*/
                        this.className = "s";
                   }
               }
           </script>
        
    </body>

1.6 购物车练习

<body>
        
         <div>
            商品名称:  <input id="n1">
            商品价格:  <input id="n2"> 
            <button  id="tjsp">添加商品</button>
            <button  οnclick="fan()">反选</button>
            <button  οnclick="shan()">删除</button>
         </div>
         <table id="bg" class="table  table-border ">
             <tr>
                 <th> <input type="checkbox"  id="qx" οnchange="haha()"> </th>
                 <th> 商品名称 </th>
                 <th> 商品价格 </th>
                 <th> 下单日期 </th>
             </tr>
         </table>
        
        <script type="text/template" id="temp">
            <tr>
                             <td><input type="checkbox" class="foo"></td>
                             <td>XXXX</td>
                             <td>YYYY</td>
                             <td>ZZZZ</td>
            </tr>
        </script>
        
        <script type="text/javascript">
            function shan(){
                if(  confirm("确定删除码?") ){
                    var arr =  document.querySelectorAll(".foo");
                    for(var i=0;i<arr.length;i++){
                        if(arr[i].checked == true)  arr[i].parentElement.parentElement.remove();
                    }
                }
            }
            function fan(){
                var arr =  document.querySelectorAll(".foo");
                for(var i=0;i<arr.length;i++){
                    arr[i].checked = !arr[i].checked;
                }
            }
        
             function haha(){
                var arr =  document.querySelectorAll(".foo");
                for(var i=0;i<arr.length;i++){
                    arr[i].checked = qx.checked;
                }
             }
        
            tjsp.onclick = function(){
                
                bg.firstElementChild.innerHTML  +=  temp.innerHTML.replace("XXXX", n1.value).replace("YYYY",n2.value).replace("ZZZZ", new Date());
            }
            
        </script>
           
    </body>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值