12-16前端jq-ajax笔记

版权声明:转载请注明出处 https://blog.csdn.net/Ajinyiping/article/details/85074901

1.ajax简写

  1. $(function(){
        $.ajax({
            url:"index_data",
            type:"get",
            dataType:"json"
        })
            .done(function(data){
            var str = "";
            for(var i=0;i<data.length;i++){
                str += '<tr><td>'+ dat[i].id +'</td><td>'+ dat[i].code +'</td><td>'+ dat[i].sname +'</td><td>10.01%</td><td>4.40%</td><td>全新好</td><td>16.05</td><td>2017-07-18</td><td><input type="button" value="添加" name="toAdd"></td></tr>'
            }
            $("table").html(str)
        })
            .fail(function(){
            alert("error");
        })
    })
    

2.ajax传参---->添加关注

  1. 触发传参:事件委托

    $("table").delegate("input","click",function(){
        alert(111);
        
    })
    
  2. 在新添加的每条数据上添加按钮上加上自己命名的属性 mycode="’+dat[i].code+’"

     '<tr><td>'+ dat[i].id +'</td><td>'+ dat[i].code +'</td><td>'+ dat[i].sname +'</td><td>10.01%</td><td>4.40%</td><td>全新好</td><td>16.05</td><td>2017-07-18</td><td><input type="button" value="添加" name="toAdd"></td></tr>'
                    str += '<tr><td>'+ dat[i].id +'</td><td>'+ dat[i].code +'</td><td>'+ dat[i].sname +'</td><td>10.01%</td><td>4.40%</td><td>全新好</td><td>16.05</td><td>2017-07-18</td><td><input type="button" value="添加" name="toAdd" mycode="'+dat[i].code+'"></td></tr>'
                    // html允许自定义属性以完成自己想要的功能 -- 自定义一个html属性:获取股票代码
                    // 双引号:k=“v”的引号
                    // 单引号:字符串拼接的引号
    
  3. 按下添加按钮谈一下自己的mycode

    $("table").delegate("input","click",function(){
        alert( $(this).attr('mycode') )  // 自定义的html属性用attr();
    })
    // alert( $(this).prop('mycode') )   //已有的html属性
    
  4. 将获取到的股票代码发送出去,以text方式接受返回数据----->ajax

    ajax---->将mycode这份数据发送给 add_data 接口-------->接口再将

    数据弹出

     var mycode =  $(this).attr('mycode');
        $.ajax({
            url:"/add_data",
            type:"get",
            data:{
                'code':mycode
            },
            dataType:"text",
            success:function(data){
            	alert(data);
            },
            error:function(){
                alert("error");
            }
            
        })
    
  5. 整个关注涉及到的新知识

    1. 对input按钮增加自定义属性
    2. 将得到的自定义属性作为参数传输给add_data页面,也就是服务器----->ajax里面的data键值存储传输数据

3.ajax与jsonp

jsonp跨域请求通过script里面的scr属性请求的jsonpcallback

  1. 跨域请求:

    1.将数据发送到360
    $(function(){
        $.ajax({
            url:"https://www.baidu.com",------->跨域http
            type:"get",
            dataType:"jsonp",--------->跨域一定是jsonp
            data:{"word":"b"},------>发送的参数
            success:function(data){
            console.log(data)
        	}
        })
    })
    
  2. 案例:从360拿数据

    $(function(){
        $("input").keyup(function(){
            var vals = $(this).val();
            var str = "";
            $.ajax({
                url:"http://www.360.com",----->链接域名
                type:"get",
                dataType:"jsonp"----->接收数据类型
                data:{"word":vals,
                     "encodeout":"utf-8"},------>发送参数
                success:function(dat){
                    console.log(dat);
                    for(var i=0;i<dat.s.length;i++){
                        str += '<li>'+dat.s[i]+'</li>';
                    }
                    $("ul").html(str);---->收到加入列表
                }
            })
        })
    })
    

4.vue的定义

  1. jq----->获取对象----->绑定事件----->操作方法------>ajax获取数据

  2. Vue数据驱动视图

  3. el,data,methods三个参数定义

  4. <script src="js/vue.min.js"></script>
    <div id="box">{{str}}</div>------->4
    <script>
        var bianliang =  new Vue({
         ----控制的标签-----说明控制范围
            el:"#box",
         ----存储的数据-----用到的数据都在里面
            data:{
                mystr:"jin"
            },
            methods:{
    		   fnAdd:function(){alert(this.mystr)}
            }
        })
    </script>
    
    

5.Vue的使用

  1. Vue使用从建立对象开始---------Vue可以控制所选标签内的所有东西包括子级标签

  2. 通过js,入口函数window.onload -----不使用------通常写在控制标签后面

  3. 调用Vue内部data里面属性 {{Vue里面data的键名}}

    1. 可以对data里面的属性进行计算表达式

    2. 也可以书写 条件表达式 变量?“成立表达式”:“不成立表达式”

    3. vued定义函数调用时-----this.data里的变量名

    4. <div id="box">{{my_num+1}}  {{my_str+2}}{{my_bool?"jin":"yi"}} </div>
      <script>
          var my_vue = new Vue({
              el:"#box",
              data:{
              my_num:11,
              my_bool:true,
              my_str:"jin"
          }
          }) 
      </script>
      
  4. 对标签属性的操作:v-bind:属性=" “------>控制html属性 -----> :属性=” "

    1. a标签跳转地址传入data里的属性 v-bind:href=“变量名” 或者:href=“变量名”

    2. <a :href="url" id="mylink"></a>
      <script>
          var my_vue = new Vue({
              el:"#mylink",
              data:{
                  ulr:"http://www.baidu.com"
              }
          })
      </script>
      
  5. 绑定事件调用Vue对象里的methods内函数:v-on:click=“函数名” 或者 @click=“函数名()”

    1. <button id="my_btn" @click="fnSay()">点点点{{num}}</button>
      <script>
      var my_vue = new Vue({
          el:"#my_btn",
          data:{
              my_str:"my name is lao wang",
              num:0
          },
          methods:{
              fnSay:function(){
                  alert(this.my_str);
                  this.num += 1;
              }
          }
      })
      </script>
      

6.Vue控制css------->控制class和style

  1. Vue里面的data数据改变,整个页面就会发生改变

  2. 控制class属性,字典,列表,对象

  3. 控制class手法通用于控制style

  4. <style>
        .my_class_a{
            width:100px;
            height:100px;
            background: blue;
        }
    	.my_class_b{
        	width:100px;
            height:100px;
            background: green ;
    	}
    </style>
    <div id="box">
    --------以字典形式控制class--格式  :class="{存在的类:Vue对象data里的bool变量}"---------
    <div id="box1" :class={'my_class_a':bool1,'my_class_b':bool2}>我 是 盒 子1</div>
    <button id="btn1" @click="funC()">我 是 按 钮1</button>
    
    
    -------以对象形式控制class--格式   在data里面增加一个包含类名的对象,将对象在给class    :class="cls_obj"-----
    <div id="box2" :class="cls_obj">我 是 盒 子2</div>
    <button id="btn2" @click="funC2()">我 是 按 钮2</button>
    
    
    -----以列表形式控制class,在data里面定义两个变量,关联已存在的类,将两个变量放在列表中给class----格式   :class="[变量1,变量2]"   或者  :class="[布尔表达式?变量1:变量2]"----------
    <div id="box3" :class="[bool1?cls_a:cls_b]">我 是 盒 子3</div>
    <button id="btn3" @click="funC()">我 是 按 钮3</button>
    </div>
    <script>
        var my_vue = new Vue({
            el:"#box",
            data:{
                bool1:true,
                bool2:false,
                cls_obj:{
                    my_class_a:false,
                    my_class_b:true,
                },
                cls_a:"my_class_a",
                cls_b:"my_class_b"
            },
            methods:{
                funC:function(){
                    this.bool1 = !this.bool1;
                    this.bool2 = !this.bool2;
                },
                funC2:function(){
                    this.cls_obj.my_class_a =!this.cls_obj.my_class_a;
                    this.cls_obj.my_class_b =!this.cls_obj.my_class_b;
                }
            }
            
        })
    </script>
    

猜你喜欢

转载自blog.csdn.net/Ajinyiping/article/details/85074901