zoukankan      html  css  js  c++  java
  • jQuery

    • 一、$的作用

    • 二、入口函数

    • 三、jQuery对象与js对象的相互转换

    • 四、选择器获取dom的jQuery对象

    • 五、基本过滤选择器

    • 六、属性选择器

    • 七、筛选选择器(重要)

    • 八、基本的动画

    • 九、卷帘门动画

    • 十、淡入淡出动画

    • 十一、自定义动画

    • 十二、jQuery的属性操作

    • 十三、jQuery对DOM文档对象的增删改查

    • 十四、操作input的value值

    • 十五、jQuery中的宽、高

    • 十六、jQuery中滚动鼠标滚轮的偏移量

    • 十七、js的事件冒泡

    • 十八、event.target与event.currentTarget区别

    • 十九、jQuery常用事件介绍

    • 二十、事件委托或者叫事件代理

    • 二十一、前端的MVC简单介绍

    • 二十二、jQuery的$.ajax()方法

    • 二十三、(补)jQuery点任意按钮提交表单

    • 二十四、(补)jQuery点任意按钮发送get请求_封装的ajax

    • 二十五、(补)jQuery点任意按钮发送post请求_封装的ajax

    • 二十六、(补)a,form标签,$.ajax, $.get, $.post等相对路径和绝对路径

    • 二十七、jQuery插件库介绍

    jQuery:

    引入:<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>

    官网:https://jquery.com
    中文API:http://jquery.cuishifeng.cn/index.html

    jquery主要学什么?
    有两个版本:编译版/未编译版

    jquery循环

    $('div').each(function () {
    alert($(this).text())
    });

    一、$的作用:

    jQuery 是一个类型,jQuery方法跟$是一样的,一般都用$
    return new jQuery.fn.init(selector,context);
    if(是全局的){
      window.jQuery=window.$=jQuery;
      相当于window.jQuery=jQuery,window.$=jQuery
    }

    //$(selector) 传入选择器,创建出jQuery对象
    //jQuery是伪数组,框架封装的时候 模仿着之前所说的伪数组
    //属性: 索引和length和一堆方法

    二、入口函数

    //之前是window.onload等文档图片都加载完才执行

    //有jQuery之后,就是文档加载完成就开始ready里的function,
    $(document).ready(function(){
      pass
    });
    或者
    $(function(){
      pass
    });

    如果要跟window.onload=function(){}一样,只需要
    $(window).ready(function(){
      pass
    });


    三、jQuery对象与js对象的相互转换

    获取jQuery对象:
      $('#box2')
    获取DOM对象:
      document.getElementById('#box2')

    jQuery转换为js对象:加get(0)
      $('#box2')[0] 或 $('#box2').get(0)
    js对象转换为jQuery对象:用$()包起来
      $(document.getElementById('#box2'))

    如果是js对象更希望转换为jQuery对象来操作简便的dom
    因为js是包含jQuery,jquery只是封装DOM 事件 ajax动画
    就要将jQuery对象转换为js对象

    总结:如果是jQuery对象一定要调用jQuery的属性和方法
    如果是js对象一定要调用js的属性和方法
    千万不要将这两个对象混淆,在jQuery大部分都是api(方法)
    length和索引是它的属性

    四、选择器获取dom的jQuery对象

    div{
    margin-top
    }

    <div class="box">吴sir</div
    <div id="box">日天</div>
    <div>alex</div>

    -------------------------------------
    jquery如何获取dom

    1.标签选择器
    $('div')   //获取到了三个div


    //下面的代码中,点三个div中每个div都绑定回调事件(显示div的内容)。
    //jQuery内部遍历绑定事件,注意jQuery里事件的this是js对象
    $('div').click(function(){
      console.log(this.innerText()); 这个和下面等价
      console.log($(this).text()); 这个和上面等价
    });

    2.类选择器
      $('.box')

    3.id选择器
      $('#box')

    4.层级选择器
      空格:后代
      > :子代
      + :获取紧邻下一个元素
      ~ :获取紧邻的所有元素

    五、基本过滤选择器

    :eq(index) 从0开始,索引等于xx 例如:选第一个 $('ul li:eq(0)')
    :gt(index) 索引大于xx $('ul li:gt(1)')
    :lt(index) 索引小于xx $('ul li:lt(4)')
    :odd 奇数 $('ul li:odd')
    :even 偶数 $('ul li:even')
    :first 第一个 $('ul li:first')
    :last 最后一个 $('ul li:last')


    六、属性选择器

    $("a[href]") 选择a标签有href属性的
    $('a[href=xx]') 选中a标签并且href="xx"的
    ...
    其他不常用的看文档


    七、筛选选择器(重要)

    JS:

      var test = document.getElementById("test");
      var parent = test.parentNode; // 父节点
      var chils = test.childNodes; // 全部子节点
      var first = test.firstChild; // 第一个子节点
      var last = test.lastChile; // 最后一个子节点 
      var previous = test.previousSibling; // 上一个兄弟节点
      var next = test.nextSibling; // 下一个兄弟节点

    jQuery:

     $("#test1").parent(); // 父节点
        $("#test1").parents(); // 全部父节点
        $("#test1").parents(".mui-content");
        $("#test").children(); // 全部子节点
        $("#test").children("#test1");
        $("#test").contents(); // 返回#test里面的所有内容,包括节点和文本
        $("#test").contents("#test1");
        $("#test1").prev();  // 上一个兄弟节点
        $("#test1").prevAll(); // 之前所有兄弟节点
        $("#test1").next(); // 下一个兄弟节点
        $("#test1").nextAll(); // 之后所有兄弟节点
        $("#test1").siblings(); // 所有兄弟节点
        $("#test1").siblings("#test2");
        $("#test").find("#test1");
      // 以下方法都返回一个新的jQuery对象,他们包含筛选到的元素
        $("ul li").eq(1); // 选取ul li中匹配的索引顺序为1的元素(也就是第2个li元素)
        $("ul li").first(); // 选取ul li中匹配的第一个元素
        $("ul li").last(); // 选取ul li中匹配的最后一个元素
        $("ul li").slice(1, 4); // 选取第2 ~ 4个元素
        $("ul li").filter(":even"); // 选取ul li中所有奇数顺序的元素

    find(selector) 找指定元素下子子孙孙,find里面放选择器
      例如:$('.box').find('p'); 找.box下的所有p标签。返回的是jQuery对象,
      $('.box').find('p').css('color','yellow').click(function(){
      alert($(this).text());
      }) //链式编程,所有jQuery写的少做的多

    children('.child') 找亲儿子,下有child类的
    siblings:查找所有同级的兄弟元素,不包括自己(选项卡那个可以用)

    parent() 只找父级,parent()不加参数只找父级。加上选择器可以判断父级是不是某标签
    parents() 找所有祖宗元素,一直到HTML。可以加选择器过滤
    eq(index) 找索引为index的,从0开始,$('.box').eq(1); 找.box里第二个


    --选项卡初级玩法------
    $(function(){
    $('button').click(function(){
    $(this).css('background','red').siblings('button').css('background','white');
    });
    });
    ----------
    -----选项卡高级玩法------
    li浮动起来,css略
    <ul>
    <li> <a href="javascript:void(0);">alex1</a> </li>
    <li> <a href="javascript:void(0);">alex2</a> </li>
    <li> <a href="javascript:void(0);">alex3</a> </li>
    <li> <a href="javascript:void(0);">alex4</a> </li>
    <p class="active">alex1</p>
    <p>alex2</p>
    <p>alex3</p>
    <p>alex4</p>
    </ul>
    需求是:点击a标签的颜色变绿色,其他颜色不变。让li变色简单,怎么让li下的a变色呢?

    $('ul li a').click(function(){
    $(this).css('background','green')
    .parent('li').siblings('li').children('a').css('background','transparent')
    });
    -----------------------
    需求增加:加上p标签,根据点击的a标签显示对应的p标签
    var i = $(this).parent().index(); //注意看兄弟元素是
    $('p').eq(i).addClass('active').siblings('p').removeClass('active');

    八、基本的动画

    <div class="box"> </div>

    1.两个按钮,一个显示动画,一个隐藏动画

    //显示动画的方法:show(动画的时间,fn) fn是回调函数,动画完成后执行fn
    //动画时间默认是normal 400ms slow 600ms fast 200ms
    $('#show').click(function(){
      $('.box').show(); //用动画的效果显示出.box 
    });

    $('#hide').click(function(){
      $('.box').hide(); //以动画的效果隐藏.box
    });


    2.一个按钮    控制显示和隐藏

    //开关式动画. 注意要先stop停掉之前的事件
    $('#toggle').click(function(){
    $('.box').stop().toggle(2000); //一个按钮控制显示和隐藏
    });

    九、卷帘门动画

    <div class="box"> </div>

    1.两个按钮,一个卷帘门下拉动画,一个卷帘门上拉动画

    $('#slideDown').click(function(){
      $('.box').slideDown(2000); //下拉动画 2秒完成
    });

    $('#slideUp').click(function(){
      $('.box').slideUp(2000); //上拉动画 2秒完成
    });


    2.一个按钮控制显示和隐藏

    $('#toggle').click(function(){
      $('.box').stop().slideToggle(1000); //一个按钮控制上下
    });


    十、淡入淡出动画

    <div class="box"> </div>

    1.两个按钮,一个淡入动画,一个淡出动画

    $('#fadeIn').click(function(){
      $('.box').fadeIn(2000); //淡入动画 2秒完成
    });

    $('#fadeOut').click(function(){
      $('.box').fadeOut(2000); //淡出动画 2秒完成
    });


    2.一个按钮控制淡入淡出

    $('#toggle').click(function(){
      $('.box').stop().fadeToggle(1000); //一个按钮控制淡入淡出
    });

    十一、自定义动画

    div{
    100px;
    height:100px;
    background:red;
    position:absolute;
    }
    <div></div>

    //自定义动画使用方法:animate({队列的属性},时间,fn)
    //fn是回调函数

    var json={
    500,
    height:500,
    top:200,
    left:300
    }
    var json2={
    0,
    height:0,
    top:10,
    left:1000
    }

      //作用:让div用2秒到达json的位置,到达json后,再从json到达json2位置,最后弹窗“已添加购物车”
      $('div').stop().animate(json,2000,function(){
      $('div').stop().animate(json2,1000,function(){
      alert('已添加购物车');
      });
      });

    十二、jQuery的属性操作

    1.样式属性操作
      css('color')获取值
      css('color','red')设置值
      css({key1:value1,key2:value2});  //属性key有连接线要加引号

    2.DOM标签的属性操作
      // 在js中 setAttribute(key,value) getAttribute()或者dom.src=xx, a.href=xx
      在jQuery中:
      获取标签的id属性: $('div').attr('id')
      设置标签的id属性:$('div').attr('id','box')

      //移除属性
      $('div').removeAttr('title id')
      //不要用下面的方式来设置类名
      设置类属性:$('div').attr('class','box1 box2')
      //设置多个值:
      $('a').attr({
      'href':'www.xx.com',
      'title':'abcd'
      });

    3.DOM对象的属性操作

      DOM对象 不是 DOM标签对象
      //prop() removeProp()
      <input type="radio" name="sex" checked>男
      <input type="radio" name="sex">女
      $(function(){
        //js对input单选按钮checked的默认设置
        //如果按下面这样获取,得到的是checked,提交到后端不方便
        $('input[type=radio]').eq(0).attr('checked');//checked

        //而按下面这样获取到的是dom对象里的属性:checked=true/false
        $('input[type=radio]').eq(0).prop('checked');//true

        //可以给dom对象设置值,注意是后台的dom对象属性而不是标签的属性
        $('input[type=radio]').eq(0).prop('aaaaa','111111');
        //移除属性
        $('input[type=radio]').eq(0).removeProp('aaaaa','111111');
      });

    4.类样式操作
      addClass()、removeClass()、toggleClass()
      例如隐藏显示操作可以通过css来操作,也可以通过控制类名来操作
        $('.box').addClass('hidden'); 也可以添加多个addClass('hidden aaa')
        $('.box').removeClass('hidden');也可以移除多个removeClass('hidden aaa')
      toggleClass样式切换,用一个按钮操作。如果原来的class='s1',将循环添加删除s1 s2样式:
        点击1次:class='s1 s2 s3'
        点击2次: class='s1'
        点击3次:class='s1 s2 s3'
        点击4次: class='s1'
        ....
      $('span').toggleClass('s2 s3');
    5.值操作
      text() //只获取文本内容 innerText
      text('begin') //设置文本对象
      html() //获取内部所有标签innerHtml
      html('<h1>abcd</h1>') //设置内部标签内容
      输入框
      val() //获取输入框value
      val('aab') //设置输入框value

    十三、jQuery对DOM文档对象的增删改查

    1.a,父子之间追加元素(插入到最后一个元素)
      //父.append(子) / 子.appendTo(父) 根据链式编程选择哪一种
      //子元素:可以是string jsDom对象 jQuery对象(移动)
        $('.box').append('alex'); //插入普通文本
        $('.box').append('<h1>alex</h1>'); //插入标签+文本
        $('.box').append(document.createElement('p')); //插入js对象
        $('.box').append($('.wusir'));//如果插入的是jQuery对象,相当于是移动操作

        $('<p>日天</p>').appendTo('.box'); //父元素可以是选择器、js对象、jQuery对象

    b,父子元素之间追加元素(插入到第一个元素)
      //父元素.prepend(子元素) / 子元素.prependTo(父元素)
      //用法跟上面一样,省略

    3.兄弟之间的插入操作
      //兄弟元素.after(要插入元素); (要插入元素).insertAfter(兄弟元素)
      //兄弟元素.before(要插入元素); (要插入元素).insertBefore(兄弟元素)

      //标签字符串里如果有换行要使用 tab上面那个`反引号 es6的模板字符串可以加变量
      var titl = "点击一下"
      $('.item').after(`<li>
      <a href="#">$(titl)</a>
      </li>
      `)

    4.替换操作
      被替换的元素.replaceWith(替换后的元素, fn)、
      替换后的元素.replaceAll(被替换的元素, fn)
      fn是回调函数,被替换的元素可以是选择器、js对象、jQuery对象

    5.删除和清空操作
      节点.remove() //删除节点并返回该节点的jQuery对象,删除节点后时间也会删除
      节点.detach() //删除节点并返回节点的对象 删除节点后事件保留
      节点.empty() //删除该节点标签下的所有子孙节点

    十四、操作input的value值

    1. 单选框:

    <form>
      男<input type="radio" name="sex">
      女<input type="radio" name="sex">
    </form>

    对单选进行设置值和获取值
      //原生js是onchange事件
      $('input').eq(0).attr('checked',true); //设置值、默认选中第一个
      //jQuery change()事件 选中就触发的事件
    $('input[type=radio]').change(function(){
      //获取值
      $(this).val(); //看是否为on
    });

    $('input:checked').val(); //获取选中的按钮的value

    2. 单选标签
    <select>
    <option>张三</option>
    <option>李四</option>
    <option checked="">王五</option>
    </select>

    //js对象中获取索引的方法
    $('select')[0].selectedIndex

    //jQuery中获取选中项的索引,跟上面的等价
      $('select option:selected').index();
    $('select').change(function(){
      //获取选中项的值
      $('select option:selected').text();
      或者
      $('select').find('option:select').text();
    });

    //设置第二个option为选中
    $('select option').get(1).selected=true;
    或者
    $('select').get(0).selectedIndex=1

    十五、jQuery中的宽、高

    1.宽度和高度

      下面是设置和获取的宽度和高度是内部的,不包括padding margin border
      设置宽高值并返回jQuery对象:jQuery.width(xx) 、 jQuery.height(xx)
      获取值: jQuery.width() 、 jQuery.height()
    2.innerWidth innerHeight
      设置值改变的是内部宽高,padding和border不变
      获取值包括内部宽+padding 不包括border
    3.outerWidth outerHeight
      设置值改变的是内部宽高,padding和border不变
      获取值包括内部宽+padding+border

    十六、jQuery中滚动鼠标滚轮的偏移量

    //下面是获取偏移量的方法。返回一个对象,对象里包括top,left
    //是距离页面顶部的距离,与父相子绝定位没有关系
    //top跟left是只读的不能修改
    $('.box').offset()          //{top:100,left:100}
    $('.box').offset().top    //获取top

    滚动的偏移距离-->页面卷起的宽度和高度
    //jQuery监听文档的滚动事件
    $(document).scroll(function(){
      var scrlltopheight = $(this).scrollTop(); //滚动离顶部距离
      var box_top=$('.box').offset().top;
      if(scrlltopheight>box_top){
        $('.box').stop().hide(100);
      };
    });

    十七、js的事件冒泡

    js事件流:描述的是从页面中接收事件的顺序
    DOM2级事件流包括三个阶段
    1、事件捕获阶段
    2、处于目标阶段
    3、事件冒泡阶段

    比方说,body里单个button的点击事件:

      第一步.向下处于捕获阶段:从document-->html-->body-->button   第二步.目标阶段执行,执行事件内的逻辑
                   document<--html<--body<--button   第三步.向上冒泡阶段

    原生js中还有一种绑定方法:obj.addEventListener('click' ,  fn  ,  true/false);

    如果是true表示有捕获阶段,默认是false没有捕获阶段,看下面验证事件冒泡的代码:


    o_btn.addEventListener('click',function(){console.log('按钮捕获'); alert(1);}, true);
    body.addEventListener('click',function(){console.log('body捕获')}, true);
    html.addEventListener('click',function(){console.log('html捕获')}, true);
    document.addEventListener('click',function(){console.log('dodument捕获')}, true);
    o_btn.addEventListener('click',function(){console.log('按钮冒泡');}, false);
    body.addEventListener('click',function(){console.log('body冒泡')}, false);
    html.addEventListener('click',function(){console.log('html冒泡')}, false);
    document.addEventListener('click',function(){console.log('dodument冒泡')}, false);
    ---输出结果---
    document捕获
    html捕获
    body捕获
    按钮捕获
    “窗口弹出1,阻塞,点确定显示后面”
    按钮冒泡
    body冒泡
    html冒泡
    document冒泡
    ---------------

    jQuery没有捕获阶段。因为捕获阶段没用
    因为有事件冒泡,比如:farther是button的父标签,如果点击button,会导致father的click事件也触发,怎么办呢?

        1.  在button中加一个方法:event.stopPropagation();就可以阻止事件冒泡了
        2.  在执行代码最后写 return false;  但是这样既阻止了默认事件,又阻止了冒泡
        什么是默认事件呢?例如a标签的跳转href,  form表单的提交都是默认事件
        如果给a标签绑定点击事件后会触发绑定事件和默认事件,如果在处理语句开头写上两句:
        event.preventDefault();//阻止默认事件
        event.stopPropagation();//阻止冒泡
        ...
        跟在最后写上一句:
        ...
        return false;
        是等价的。

    例如:<a href="javascript:void(0);"></a>  也是阻止a标签的默认事件的

    //看一下:jQuery绑定事件时,会自动传一个event形参,这个event是原生的js对象,在里面用event的方法阻止事件冒泡:
    $('button').click(function(event){

      event.stopPropagation();

    });

    $('.father').click(function(event){

      event.stopPropagation();

    });

    十八、event.target与event.currentTarget区别

    <html>
    <body>
    <button></button>
    </body>
    </html>

    如果在button里添加点击事件:

    function(event){
    console.log(event.currentTarget);
    console.log(event.target);
    }

    如果允许事件冒泡:this是一个js对象
    button里:
    event.target===event.currentTarget===this===<button></button>
    body,html,document里
    event.target===<button></button>
    event.currentTarget===各自的body html document
    如果阻止事件冒泡:
    button里:
    event.target===event.currentTarget===this===<button></button>
    body,html,document里:
    没有

    js事件之一:监听输入。要用原生js来操作

    $('input').get(0).oninput=function(){
    //input框输入值就触发该事件
    };


    双向数据绑定:将input值跟div同步,改变input值会改变div
    单向数据绑定:将input值跟div同步

    十九、jQuery常用事件介绍

    1、jQuery的单双击事件

    //单击事件
    $('button').click(function(event){
      console.log('单击');
    });
    //双击事件
    $('button').dblclick(function(event){
      console.log('双击');
    });
    //如果同一个按钮绑定了单击和双击事件,如果点双击,会触发两次单击事件。
    //单击 单击 双击 (注意这个先后顺序,单击在前双击在后)
    //默认的是两次单击中间的时间差是300ms,如果小于300ms表示双击,可以用下面的写法


    var timer = null; //定义全局定时器
    $('button').click(function(event){
      //取消第一次延时未执行的方法
      clearTimeout(timer);
      // 如果是双击事件 要阻止两次单击事件的调用
      timer = setTimeout(function(){
      ... //这里写单击事件的业务代码
      }, 300);
    });

    $('button').dblclick(function(event){
      //取消第二次延时未执行的方法
      clearTimeout(timer);
      ... //这里写双击事件的业务代码
    });

    2、鼠标移入移出事件:mouseover()/out()与mouseenter()/leave()区别

    看演示,下面是一个div里套一个p标签
    <div>
    <p></p>
    </div>

    mouseover/out:鼠标穿过被选元素或被选元素的子元素会触发
            鼠标移入div时,触发div.mouseover事件,
            再在div里移进p标签时,会先触发div.mouseout事件,再触发div.mouseover事件

    mouseenter/leave:鼠标穿过被选元素会触发
            鼠标移入div,触发div.mouseenter事件
            鼠标移出div,触发div.mouseleave事件


    3、jquery的合成事件,两个事件放到一个事件里,跟分开写等价的

    $('div').hover(function(){}, function(){})   //第一个function是进入,第二个function是离开


    4、表单事件的select事件:文本选中的时候会调用

    $('input').select(function(){
      //选中文本的时候调用
    });

    5、form表单的submit事件
    <form action="http://www.baidu.com/s" method="get">
    <input type="submit"></input>
    </form>

    //什么都不做的时候,点击button会触发表单的action,向www.baidu.com/s发请求
    //未来如果需要form表单里的submit不向action发请求,就需要这样写:

    $('form').submit(function(e){
      e.preventDefault();
      //自己对点击submit的处理
      ....
    });

    6、鼠标聚焦失焦事件
    加载的时候,input是没有焦点的,如果想让加载页面的时候获取焦点就写:
    $('input').focus();

    7、键盘按键事件

    $('input').keyup(function(event){
      //键码在event对象里面
      //event.keyCode根据这个判断按的是哪个键
    });

    二十、事件委托或者叫事件代理

    原理:
    利用事件冒泡的原理,把事件加到父级上,触发事件

    <ul>
    <li>alex</li>
    <li>wusir</li>
    </ul>


    //假设要点击li,触发打印li里的内容,之前是给每个li绑定click事件
    //如果未来在ul里追加了li标签,新加的li没有绑定click事件,
    //这时候,可以利用事件委托
    //在'ul'里,使用选择器'li'得到的对象添加事件
    $('ul').on('click','li',function(e){
      alert($(this).text());
    });

    二十一、前端的MVC简单介绍

    数据驱动视图的思想
    常用设计模式中的MVC
    Model View Controller
    数据 视图 控制器

    数据不同导致视图不同,数据不是无缘无故显示到视图
    是通过控制器来显示到视图上。

    动态页面:
    记住:数据(mysql中的数据)驱动视图(HTML标签)

    前端发请求给后端,后端根据路由选择相应的方法,并将数据库的数据读取出来并相应

     

    二十二、jQuery的$.ajax()方法

    ajax=异步的JavaScript和XML
    简而言之,在不重载整个网页的情况下,AJAX通过后台加载数据
    并在页面上进行显示

    1、ajax发送get请求:
    发送get或post是由服务器端的路由来决定。默认是get
    jQuery中调用ajax方法用:$.ajax({...}); 大括号里写参数
    $(function(){
      $.ajax({
        url:'http://localhost:8080/',
        type:'get',
        success:function(data){
          console.log(data);
          $('body').html(data);
        },//成功之后调用,data是后端相应回来的数据,是string类型
        error:function(err){console.log(err);} //出错打印err信息
      });
    });

    $(function(){
      //指定返回数据的类型
      $.ajax({
        url:'http://localhost:8080/',
        type:'get',
        dataType:'json',//设置返回的数据的数据类型为json
        success:function(data){
          console.log(data.name);
          $('.box').text(name);
        },
        error:function(err){console.log(err);}
      });
    });


    2、ajax发送post请求:
    提交form表单,以key-value形式,key为"name"
    $(function(){
      var user = $('input').val();
      $.ajax({
        url:'http://localhost:8080/create',
        type:'post',
        data:{
        "name":user
        },
        success:function(data){
        console.log(data);
        },
        error:function(err){console.log(err);}
      });
    });

    二十三、(补)jQuery点任意按钮提交表单

    <form method='post' action='add'>.....</form>

    <button></button>

    提交表单的方法:给对象绑定事件

    $('button').onclick(function(){

      $('from').submit();

    });

    二十四、(补)jQuery点任意按钮发送get请求_是对ajax的封装

    例子 1

    请求 test.php 网页,传送2个参数,忽略返回值:

    $.get("test.php", { name: "John", time: "2pm" } );

    例子 2

    显示 test.php 返回值(HTML 或 XML,取决于返回值):

    $.get("test.php", function(data){
      alert("Data Loaded: " + data);
    });

    例子 3

    显示 test.cgi 返回值(HTML 或 XML,取决于返回值),添加一组请求参数:

    $.get("test.cgi", { name: "John", time: "2pm" },
      function(data){
        alert("Data Loaded: " + data);
      });

    二十五、(补)jQuery点任意按钮发送post请求_是对ajax的封装

    语法:

    jQuery.post(url,data,success(data, textStatus, jqXHR),dataType)
    参数描述
    url 必需。规定把请求发送到哪个 URL。
    data 可选。映射或字符串值。规定连同请求发送到服务器的数据。
    success(data, textStatus, jqXHR) 可选。请求成功时执行的回调函数。
    dataType

    可选。规定预期的服务器响应的数据类型。

    默认执行智能判断(xml、json、script 或 html)。

    例子:

    向页面 test.php 发送数据,并输出结果(HTML 或 XML,取决于所返回的内容):

    $.post("test.php", { name: "John", time: "2pm" },
        function(data){
          alert("Data Loaded: " + data);
        });

    二十六、(补)a,form标签,$.ajax, $.get, $.post等相对路径和绝对路径

    相对路径:没有“/”开头的路径,相对于 “当前页面的路径”

    绝对路径:以“/”开头的路径,相对于 “域(IP+Port)”

    a,form标签,$.ajax, $.get, $.post等均适用。

    如果有请求参数:

    a标签可在路径后用?拼接请求参数,

    $.ajax, $.get, $.post的请求参数可以:1,在路径后用?拼接请求参数,2,单独写 3, 在URL中用正则分组匹配 例如删除ID=2的记录可以这样写"/delete/2/"

    假如当前浏览器路径为:http://127.0.0.1:8000/abc/tmp.html?a=1&b=2

     url: ' app/index/ '  对应的完整路径为 http://127.0.0.1:8000/abc/app/index/

     url: ' /app/index/'  对应的完整路径为 http://127.0.0.1:8000/app/index/

    二十七、jQuery插件库介绍

    百度搜“jQuery插件库”
    里面有包括,树形插件,日期时间选择器插件等

  • 相关阅读:
    线上六个性能问题案例分享
    通达OA 前台任意用户登录漏洞复现
    CVE-2019-11043-Nginx PHP 远程代码执行
    CVE-2019-10758-Mongo-express-远程代码执行
    CVE-2017-7529-Nginx越界读取缓存漏洞
    add_header被覆盖 -配置错误
    目录穿越漏洞 -配置错误
    CRLF注入漏洞 -配置错误
    CVE-2019-12409-Apache Solr JMX服务远程代码执行
    CVE-2017-12149-JBoss 5.x/6.x 反序列化
  • 原文地址:https://www.cnblogs.com/staff/p/10618874.html
Copyright © 2011-2022 走看看