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插件库”
里面有包括,树形插件,日期时间选择器插件等

原文地址:https://www.cnblogs.com/staff/p/10618874.html