JS模块(JQuery)

JS模块(JQuery)

文章目录

简介

jQuery 是一个 JavaScript 库。

jQuery 极大地简化了 JavaScript 编程

什么是jQuery

jQuery是一个JavaScript函数库。

jQuery是一个轻量级的"写的少,做的多"的JavaScript库。

jQuery库包含以下功能:

    HTML 元素选取
    HTML 元素操作
    CSS 操作
    HTML 事件函数
    JavaScript 特效和动画
    HTML DOM 遍历和修改
    AJAX
    Utilities

为什么使用jQuery

目前网络上有大量开源的 JS 框架, 但是 jQuery 是目前最流行的 JS 框架,而且提供了大量的扩展。

很多大公司都在使用 jQuery, 例如:

    Google
    Microsoft
    IBM
    Netflix

引入jQuery的方法

  1. 引入JQuery库文件
<!-- 引入JQuery库文件 -->
<script src="js/jquery-3.5.1.js" type="text/javascript" charset="utf-8"></script>	
  1. CDN的方式 引入网络上的JQuery库文件
<!-- CDN的方式 引入网络上的JQuery库文件 -->
<script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-1.10.2.min.js"></script> 

使用步骤

//1.下载Jquery可库文件
//2.在页面上引入库文件 <script src="js/jquery.js" type="text/javascript" charset="utf-8"/>
//3.使用
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<!-- 引入JQuery库文件 -->
		<script src="js/jquery-3.5.1.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			
			$(function(){
				$('button').click(function(){
					alert("一树梨花压海棠");
				})
			})
		</script>
	</head>
	<body>
		<button type="button">one</button>
	</body>
</html>

语法解释

$表示JQuery对象
$是 JQuery对象的缩写形式 
jQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作。

基础语法: $(selector).action()

    美元符号定义 jQuery
    选择符(selector)"查询"和"查找" HTML 元素
    jQuery 的 action() 执行对元素的操作

实例:

    $(this).hide() - 隐藏当前元素

    $("p").hide() - 隐藏所有 <p> 元素

    $("p.test").hide() - 隐藏所有 class="test" 的 <p> 元素

    $("#test").hide() - 隐藏 id="test" 的元素

文档就绪

$(document).ready(function(){
 
   //jQuery 代码...
 
});
$(function(){
 
   //  jQuery 代码...
 
});

  • 目的:防止文档在完全加载(就绪)之前运行 jQuery 代码,即在 DOM 加载完成后才可以对 DOM 进行操作 如果在文档没有完全加载之前就运行函数,操作可能失败

jQuery 选择器

jQuery 选择器允许您对 HTML 元素组或单个元素进行操作。

jQuery 选择器基于元素的 id、类、类型、属性、属性值等"查找"(或选择)HTML 元素。 它基于已经存在的 CSS 选择器,除此之外,它还有一些自定义的选择器。

jQuery 中所有选择器都以美元符号开头:$()
  • 元素选择器
 jQuery 元素选择器基于元素名选取元素。

在页面中选取所有 <p> 元素:
$("p") 
<p> 元素隐藏
$(document).ready(function(){
  $("button").click(function(){
    $("p").hide();
  });
});

  • id选择器
jQuery #id 选择器通过 HTML 元素的 id 属性选取指定的元素。

页面中元素的 id 应该是唯一的,所以您要在页面中选取唯一的元素需要通过 #id 选择器
通过 id 选取元素语法:
$("#test")
id="test" 属性的元素将被隐藏

$(document).ready(function(){
  $("button").click(function(){
    $("#test").hide();
  });
});
  • .class选择器
jQuery 类选择器可以通过指定的 class 查找元素。
语法如下:
$(".test")
class="test" 属性的元素都隐藏
$(document).ready(function(){
  $("button").click(function(){
    $(".test").hide();
  });
});
其他
$("*")选取所有元素
$(this)选取当前 HTML 元素
$(“p.intro”)选取 class 为 intro 的

元素

$(“p:first”)选取第一个

元素

$(“ul li:first”)选取第一个
  • 元素的第一个
  • 元素
$(“ul li:first-child”)选取每个
  • 元素的第一个
  • 元素
$("[href]")选取带有 href 属性的元素
$(“a[target=’_blank’]”)选取所有 target 属性值等于 “_blank” 的 元素
$(“a[target!=’_blank’]”)选取所有 target 属性值不等于 “_blank” 的 元素
$(":button")选取所有 type=“button” 的 元素 和 元素
$(“tr:even”)选取偶数位置的
$(“tr:odd”)选取奇数位置的
元素 元素

jQuery事件

jQuery 是为事件处理特别设计的
什么是事件?
页面对不同访问者的响应叫做事件

事件处理程序指的是当 HTML 中发生某些事件时所调用的方法。

- 在元素上移动鼠标。
- 选取单选按钮
- 点击元素

常见 DOM 事件:
click 	    keypress 	submit 	  load
dblclick 	keydown     change 	  resize
mouseenter 	keyup 	    focus 	  scroll
mouseleave 	blur 	    unload    hover 	  	  	 
jQuery 事件方法语法
在 jQuery 中,大多数 DOM 事件都有一个等效的 jQuery 方法
页面中指定一个点击事件:

$("p").click();

下一步是定义什么时间触发事件。您可以通过一个事件函数实现:

$("p").click(function(){    // 动作触发后执行的代码!! });
常见方法事件方法

$(document).ready()

$(document).ready() 方法允许我们在文档完全加载完后执行函数 

click()

click() 方法是当按钮点击事件被触发时会调用一个函数

该函数在用户点击 HTML 元素时执行

$("p").click(function(){
  $(this).hide();
});
//隐藏p

dblclick()

当双击元素时,会发生 dblclick 事件。

dblclick() 方法触发 dblclick 事件,或规定当发生 dblclick 事件时运行的函数:

$("p").dblclick(function(){  $(this).hide(); });

mouseenter()

当鼠标指针穿过元素时,会发生 mouseenter 事件。

mouseenter() 方法触发 mouseenter 事件,或规定当发生 mouseenter 事件时运行的函数:

$("#p1").mouseenter(function(){    alert('您的鼠标移到了 id="p1" 的元素上!'); });

mouseleave()

当鼠标指针离开元素时,会发生 mouseleave 事件。

mouseleave() 方法触发 mouseleave 事件,或规定当发生 mouseleave 事件时运行的函数:

$("#p1").mouseleave(function(){    alert("再见,您的鼠标离开了该段落。"); });

mousedown()

当鼠标指针移动到元素上方,并按下鼠标按键时,会发生 mousedown 事件。

mousedown() 方法触发 mousedown 事件,或规定当发生 mousedown 事件时运行的函数:
$("#p1").mousedown(function(){
    alert("鼠标在该段落上按下!");
});

mouseup()

当在元素上松开鼠标按钮时,会发生 mouseup 事件。

mouseup() 方法触发 mouseup 事件,或规定当发生 mouseup 事件时运行的函数:

$("#p1").mouseup(function(){    alert("鼠标在段落上松开。"); });

hover()

hover()方法用于模拟光标悬停事件。

当鼠标移动到元素上时,会触发指定的第一个函数(mouseenter);当鼠标移出这个元素时,会触发指定的第二个函数(mouseleave)

$("#p1").hover(    function(){        alert("你进入了 p1!");    },    function(){        alert("拜拜! 现在你离开了 p1!");    } );

focus()

当元素获得焦点时,发生 focus 事件。

当通过鼠标点击选中元素或通过 tab 键定位到元素时,该元素就会获得焦点。

focus() 方法触发 focus 事件,或规定当发生 focus 事件时运行的函数

$("input").focus(function(){  $(this).css("background-color","#cccccc"); });

blur()

当元素失去焦点时,发生 blur 事件。

blur() 方法触发 blur 事件,或规定当发生 blur 事件时运行的函数

$("input").blur(function(){  $(this).css("background-color","#ffffff"); });

jQuery(DOM)获取内容和属性

jQuery 中非常重要的部分  就是操作 DOM 

DOM = Document Object Model(文档对象模型)  DOM 定义访问 HTML 和 XML 文档的标准: "W3C 文档对象模型独立于平台和语言的界面,允许程序和脚本动态访问和更新文档的内容、结构以及样式。"
获得内容 - text()、html() 以及 val()
  • text() - 设置或返回所选元素的文本内容
  • html() - 设置或返回所选元素的内容(包括 HTML 标记)
  • val() - 设置或返回表单字段的值
$("#btn1").click(function(){
  alert("Text: " + $("#test").text());
});
$("#btn2").click(function(){
  alert("HTML: " + $("#test").html());
});

获取属性 - attr()
jQuery attr() 方法用于获取属性值。

$("button").click(function(){  alert($("#runoob").attr("href")); });

jQuery - 设置内容和属性

设置内容 - text()、html() 以及 val()
  • text() - 设置或返回所选元素的文本内容
  • html() - 设置或返回所选元素的内容(包括 HTML 标记)
  • val() - 设置或返回表单字段的值
$("#btn1").click(function(){
    $("#test1").text("Hello world!");
});
$("#btn2").click(function(){
    $("#test2").html("<b>Hello world!</b>");
});
$("#btn3").click(function(){
    $("#test3").val("RUNOOB");
});
text()、html() 以及 val() 的回调函数

text()、html() 以及 val(),同样拥有回调函数。回调函数有两个参数:被选元素列表中当前元素的下标,以及原始(旧的)值。然后以函数新值返回您希望使用的字符串

$("#btn1").click(function(){
    $("#test1").text(function(i,origText){
        return "旧文本: " + origText + " 新文本: Hello world! (index: " + i + ")"; 
    });
});
 $("#btn2").click(function(){
    $("#test2").html(function(i,origText){
        return "旧 html: " + origText + " 新 html: Hello <b>world!</b> (index: " + i + ")"; 
    });
});
设置属性 - attr()
  • jQuery attr() 方法也用于设置/改变属性值
$("button").click(function(){
  $("#runoob").attr("href","http://www.runoob.com/jquery");
});
  • attr() 方法也允许您同时设置多个属性
$("button").click(function(){
    $("#runoob").attr({
        "href" : "http://www.runoob.com/jquery",
        "title" : "jQuery 教程"
    });
});
attr() 的回调函数
jQuery 方法 attr(),也提供回调函数。回调函数有两个参数:被选元素列表中当前元素的下标,以及原始(旧的)值。然后以函数新值返回您希望使用的字符串
$("button").click(function(){
  $("#runoob").attr("href", function(i,origValue){
    return origValue + "/jquery"; 
  });
});

jQuery - 添加元素

  • append() - 在被选元素的结尾插入内容
  • prepend() - 在被选元素的开头插入内容
  • after() - 在被选元素之后插入内容
  • before() - 在被选元素之前插入内容
jQuery append() 方法
jQuery append() 方法在被选元素的结尾插入内容(仍然在该元素的内部)。

$("p").append("追加文本");
jQuery prepend() 方法
jQuery prepend() 方法在被选元素的开头插入内容。

$("p").prepend("在开头追加文本");
通过 append() 和 prepend() 方法添加若干新元素
append() 和 prepend() 方法能够通过参数接收无限数量的新元素 可以通过 jQuery 来生成文本/HTML 或通过 JavaScript 代码和 DOM 元素
function appendText(){
var txt1="<p>文本-1。</p>"; // 使用 HTML 标签创建文本
var txt2=$("<p></p>").text("文本-2。");//使用jQuery创建文本
var txt3=document.createElement("p");
txt3.innerHTML="文本-3。";//使用 DOM 创建文本 text with DOM
$("body").append(txt1,txt2,txt3);// 追加新元素
}
jQuery after() 和 before() 方法
jQuery after() 方法在被选元素之后插入内容。

jQuery before() 方法在被选元素之前插入内容。

$("img").after("在后面添加文本");  
$("img").before("在前面添加文本");
通过 after() 和 before() 方法添加若干新元素
after() 和 before() 方法能够通过参数接收无限数量的新元素。可以通过 text/HTML、jQuery 或者 JavaScript/DOM 来创建新元素
function afterText()
{
var txt1="<b>I </b>";           // 使用 HTML 创建元素
var txt2=$("<i></i>").text("love "); // 使用 jQuery 创建元素
var txt3=document.createElement("big"); // 使用 DOM 创建元素
txt3.innerHTML="jQuery!";
$("img").after(txt1,txt2,txt3);    // 在图片后添加文本
}

总结

append/prepend 是在选择元素内部嵌入

after/before 是在元素外面追加

包裹节点

**方法名 ****描述 **
wrap(html)向指定元素包裹一层 html 代码
wrap(element)向指定元素包裹一层 DOM 对象节点
wrap(function (index) {})使用匿名函数向指定元素包裹一层自定义内容
unwrap()移除一层指定元素包裹的内容
wrapAll(html)用 html 将所有元素包裹到一起
wrapAll(element)用 DOM 对象将所有元素包裹在一起
wrapInner(html)向指定元素的子内容包裹一层 html
wrapInner(element)向指定元素的子内容包裹一层 DOM 对象节点
wrapInner(function (index) {})用匿名函数向指定元素的子内容包裹一层
除了创建、插入和包裹节点,jQuery 还提供了一些常规的节点操作方法:复制、替换和删除节点。
//复制节点
$(‘body’).append($(‘div’).clone(true)); //复制一个节点添加到 HTML 中
注意:clone(true)参数可以为空,表示只复制元素和内容,不复制事件行为。而加上 true参数的话,这个元素附带的事件处理行为也复制出来。
//删除节点
$(‘div’).remove(); //直接删除 div 元素
注意:.remove()不带参数时,删除前面对象选择器指定的元素。
带选择符参数的,比如:
$(‘div’).remove(‘#box’);只删除 id=box 的 div。//保留事件的删除节点
$(‘div’).detach(); //保留事件行为的删除注意:.remove()和.detach()都是删除节点,而删除后本身方法可以返回当前被删除的节点对象,但区别在于前者在恢复时不保留事件行为,后者则保留。//清空节点
$(‘div’).empty(); //删除掉节点里的内容//替换节点
$(‘div’).replaceWith(‘<span>节点</span>’); //将 div 替换成 span 元素
$(‘<span>节点</span>’).replaceAll(‘div’); //同上 
注意:节点被替换后,所包含的事件行为就全部消失了。

jQuery - 删除元素

通过 jQuery,可以很容易地删除已有的 HTML 元素
删除元素/内容
  • remove() - 删除被选元素(及其子元素)
  • empty() - 从被选元素中删除子元素
jQuery remove() 方法
jQuery remove() 方法删除被选元素及其子元素

$("#div1").remove();
jQuery empty() 方法
jQuery empty() 方法删除被选元素的子元素

$("#div1").empty();
过滤被删除的元素
jQuery remove() 方法也可接受一个参数,允许您对被删元素进行过滤。

该参数可以是任何 jQuery 选择器的语法。

//删除 class="italic" 的所有 <p> 元素

$("p").remove(".italic");

jQuery - 获取并设置 CSS 类

通过 jQuery,可以很容易地对 CSS 元素进行操作。 
jQuery 操作 CSS
  • addClass() - 向被选元素添加一个或多个类
  • removeClass() - 从被选元素删除一个或多个类
  • toggleClass() - 对被选元素进行添加/删除类的切换操作
  • css() - 设置或返回样式属性
jQuery addClass() 方法
向不同的元素添加 class 属性
在添加类时,您也可以选取多个元素

$("button").click(function(){  $("h1,h2,p").addClass("blue");  $("div").addClass("important"); });
您也可以在 addClass() 方法中规定多个类

$("button").click(function(){ 
$("body div:first").addClass("important blue"); });
jQuery removeClass() 方法
在不同的元素中删除指定的 class 属性

$("button").click(function(){  $("h1,h2,p").removeClass("blue"); });
jQuery toggleClass() 方法
对被选元素进行添加/删除类的切换操作

$("button").click(function(){  $("h1,h2,p").toggleClass("blue"); });

jQuery css() 方法

css() 方法设置或返回被选元素的一个或多个样式属性。
返回 CSS 属性
返回指定的 CSS 属性的值

css("*propertyname*");

返回首个匹配元素的 background-color 值

$("p").css("background-color");
设置 CSS 属性
设置指定的 CSS 属性

css("*propertyname*","*value*");

为所有匹配元素设置 background-color 值

$("p").css("background-color","yellow");
设置多个 CSS 属性
设置多个 CSS 属性

css({"*propertyname*":"*value*","*propertyname*":"*value*",...});

为所有匹配元素设置 background-color 和 font-size

$("p").css({"background-color":"yellow","font-size":"200%"});

jQuery 尺寸方法

width() 方法设置或返回元素的宽度(不包括内边距、边框或外边距)。

height() 方法设置或返回元素的高度(不包括内边距、边框或外边距)。

innerWidth() 方法返回元素的宽度(包括内边距)。

innerHeight() 方法返回元素的高度(包括内边距)。

outerWidth() 方法返回元素的宽度(包括内边距和边框)。

outerHeight() 方法返回元素的高度(包括内边距和边框)。
$("button").click(function(){
  var txt="";
  txt+="div 的宽度是: " + $("#div1").width() + "</br>";
  txt+="div 的高度是: " + $("#div1").height();
  $("#div1").html(txt);
});

$("button").click(function(){
  var txt="";
  txt+="div 宽度,包含内边距: " + $("#div1").innerWidth() + "</br>";
    txt+="div 高度,包含内边距: " + $("#div1").innerHeight();
  $("#div1").html(txt);
});

$("button").click(function(){
  var txt="";
  txt+="div 宽度,包含内边距和边框: " + $("#div1").outerWidth() + "</br>";
  txt+="div 高度,包含内边距和边框: " + $("#div1").outerHeight();
  $("#div1").html(txt);
});

jQuery 遍历

向上遍历 DOM 树
  • parent()
  • parents()
  • parentsUntil()
jQuery parent() 方法
parent() 方法返回被选元素的直接父元素。

该方法只会向上一级对 DOM 树进行遍历。

返回每个 <span> 元素的直接父元素

$(document).ready(function(){  $("span").parent(); });
jQuery parents() 方法
parents() 方法返回被选元素的所有祖先元素,它一路向上直到文档的根元素 (<html>)

返回所有 <span> 元素的所有祖先

$(document).ready(function(){  $("span").parents(); });

使用可选参数来过滤对祖先元素的搜索。

返回所有 <span> 元素的所有祖先,并且它是 <ul> 元素

$(document).ready(function(){  $("span").parents("ul"); });
jQuery parentsUntil() 方法
parentsUntil() 方法返回介于两个给定元素之间的所有祖先元素。

返回介于 <span> 与 <div> 元素之间的所有祖先元素

$(document).ready(function(){  $("span").parentsUntil("div"); });

事件对象

事件对象就是 event 对象,通过处理函数默认传递接受。之前处理函数的 e 就是 event 事件对象,event 对象有很多可用的属性和方法
//通过处理函数传递事件对象 
$(‘input’).bind(‘click’, function (e) { 
//接受事件对象参数               
alert(e); });

事件对象 event的属性

**属性名 ****描述 **
type获取这个事件的事件类型,例如:click
targetevent.target 得到的是触发元素的 DOM对象 比如一个子层,在外层里面,给外层绑定了事件 那么你移入到子层,子层也能触发这个事件,那么event.targe获取到的是这个子层对象,因为他是触发事件的对象
currentTargetcurrentTarget 得到的是监听元素的DOM对象,等同与 this e. currentTarget 获取到的是,谁绑定的事件,那就是谁
relatedTarget获取移入移出目标点,离开或进入的那个 DOM 元素
data获取事件调用时的额外数据
which获取鼠标的左中右键(1,2,3),或获取键盘按键

事件之冒泡和默认行为

默认行为:一些元素本身就具有的行为,比如 a 标签的页面跳转行为 提交按钮的 提交表单行为,就是默认行为


冒泡行为:页面中重叠了多个元素,并且重叠的这些元素都绑定了同一个事件,那么就会出 现冒泡问题
我給 A B C 三个元素都设置了点击事件,那么当我点击C时 ,C,B,A 依次都会执行各自的点击事件,这种现象,称之为冒泡行为
preventDefault()取消某个元素的默认行为
stopPropagation()取消事件冒泡
isDefaultPrevented()判断是否调用了 preventDefault()方法
isPropagationStopped()判断是否调用了 stopPropagation()方法
stopImmediatePropagation()取消事件冒泡,并取消该事件的后续事件处理函数
isImmediatePropagationStopped()判断是否调用了 stopImmediatePropagation()方法

高级事件 on off one

目前绑定事件和解绑的方法 在 jQuery1.7 以后推出了.on()和.off()方法彻底摒弃bind()和unbind()。
老方式 绑定事件 bind()   新方式  on()
老方式 解绑事件 unbind()  新方式 off()
以后推荐使用新方式来绑定和解绑事件

//替代.bind()方式
$('.button').on('click', function () {alert('替代.bind()');});
//替代.bind()方式,并使用额外数据和事件对象
$('.button').on('click', {user : 'Lee'}, function (e) {
alert('替代.bind()' + e.data.user);
});
//替代.bind()方式,并绑定多个事件
$('.button').on('mouseover mouseout', function () {
alert('替代.bind()移入移出!');
});
//替代.bind()方式,以对象模式绑定多个事件
$('.button').on({
mouseover : function () {
alert('替代.bind()移入!');
},
mouseout : function () {
alert('替代.bind()移出!');
}
});
//替代.bind()方式,阻止默认行为并取消冒泡
$(‘form’).on(‘submit’, function () {
return false;//返回false 阻止默认行为和冒泡行为
});
或
$('form').on('submit', false);
//替代.bind()方式,阻止默认行为
$('form').on('submit', function (e) {
e.preventDefault();
});
//替代.bind()方式,取消冒泡
$('form').on('submit', function (e) {
e.stopPropagation();
});
//替代.unbind()方式,移除事件
$('.button').off('click');
$('.button').off('click', fn);
$('.button').off('click.abc');

One 表示事件执行一次
//类似于.bind()只触发一次
$('.button').one('click', function () {
alert('one 仅触发一次!');
});


例子:事件委托 給button的父元素 设置点击事件,让里面动态生成的子元素也具有点击事件
<div id="box">
<button>一个按钮</button>
</div>

//on普通事件委托
$('#box').on('click', 'button', function () {
$(this).clone().appendTo('#box');
});
//取消事件委托
$('#box').off('click', 'button');


高级事件 trigger和triggerHandler

  • 浏览器一打开自动触发我们绑定的事件
         $('button').bind('click', function() {

                 alert("点击了");
          }).trigger('click');
  • Trigger 传递数据
$('button').bind('click', function(e,data1,data2,data3) {

alert("取出trigger传过来的数据"+data1+"和"+data2[0]+"和"+data3.name);
}).trigger('click',['abc',[2,3],{name:'hello'}]);

//注意多个数据用[ ] 括起来,data1 ,data2,data3 指的就是[ ]中的数据

那么bind在绑定事件的时候也能传递数据,这里要跟trigger传递的数据区分一下
如果是bind传递的数据我们用事件对象e中的data属性取数据
$('button').bind('click',{age:'23'},function(e,data1,data2,data3) {
alert("取出trigger传过来的数据"+data1+"和"+data2[0]+"和"+data3.name+"和bind中传递的数据要用事件对象e中的data属性去取"+e.data.age);
}).trigger('click',['abc',[2,3],{name:'hello'}]);

  • 自定义事件
$('button').bind('myEvent',function(){

           alert('自定义事件');

}).trigger('myEvent');

  • trigger 简写方案
.trigger()方法提供了简写方案,只要想让某个事件执行模拟用户行为,直接再调用一个
空的同名事件即可。
$('button').bind('click', function() {

     alert("点击了");
}).trigger('click');
//上面的可以简写为如下的:
$('input').click(function () {
alert('我的第一次点击来自模拟!');
}).click(); //空的 click()执行的是 trigger()

这种便捷的方法,jQuery 几乎个所有常用的事件都提供了。
blur focusin mousedown resize
change focusout mousenter scroll
click keydown mouseleave select
dblclick keypress mousemove submit
error keyup mouseout unload
focus load mouseover

//注意为了语义性更加好,一般不推荐简写方案,当然你要使用也是没有问题的

  • triggerHandler()
jQuery 还提供了另外一个模拟用户行为的方法:.triggerHandler();这个方法的使用
和.trigger()方法一样。
$('input').click(function () {
alert('我的第一次点击来自模拟!');
}).triggerHandler('click');
  • trigger和triggerHandler的区别
区别1:
1..triggerHandler()方法并不会触发事件的默认行为,而.trigger()会
<form action="123.html" method="get">
       <input type="submit" value="提交" />
</form>
$('form').trigger('submit'); //模拟用户执行提交,并跳转到执行页面
$('form').triggerHandler('submit'); //模拟用户执行提交,并阻止的默认行为
如果我们希望使用.trigger()来模拟用户提交,并且阻止事件的默认行为,则需要这么写:
$('form').submit(function (e) {
e.preventDefault(); //阻止默认行为
}).trigger('submit');


区别2..triggerHandler()方法只会影响第一个匹配到的元素,而.trigger()会影响所有。
例如:我给三个按钮都设置了点击事件 用trigger会弹三次 用triggerHandler只弹一次
<body>
<button>一个按钮</button>
<button>一个按钮</button>
<button>一个按钮</button>
</body>
$('button').bind('click',function(){
alert(‘弹了’);//弹三次
}).trigger('click');
$('button').bind('click',function(){
alert(‘弹了’); //弹一次
}). triggerHandler('click');


区别3..triggerHandler()方法会返回当前事件执行的返回值,如果没有返回值,则返回undefined;而.trigger()则返回当前包含事件触发元素的 jQuery 对象(方便链式连缀调用)。
$('button').bind('click',function(){
alert("弹了");
}).trigger(‘click’).css({‘background’:‘red’});//返回的是这个按钮对象可以连调
alert($('input').click(function () {
return 123;
}).triggerHandler('click')); //返回 123,没有 return 返回

区别4..trigger()在创建事件的时候,会冒泡。但这种冒泡是自定义事件才能体现出来,是jQuery 扩展于 DOM 的机制,并非 DOM 特性。而.triggerHandler()不会冒泡。
<body>
   <div>
      <div>一个按钮</div>
   </div>
</body>
$('div').bind('myEvent', function() {
alert(“div弹了”); //不会冒泡弹一次
}).triggerHandler('myEvent');
$(function() {
$('div').bind('myEvent', function() {
alert(“div弹了”);//会冒泡 弹三次
}).trigger('myEvent');
});

jQuery 遍历

向下遍历 DOM 树

下面是两个用于向下遍历 DOM 树的 jQuery 方法:

  • children()
  • find()
jQuery children() 方法
children() 方法返回被选元素的所有直接子元素 该方法只会向下一级对 DOM 树进行遍历

下面的例子返回每个 <div> 元素的所有直接子元素

$(document).ready(function(){  $("div").children(); });

使用可选参数来过滤对子元素的搜索。

返回类名为 "1" 的所有 <p> 元素,并且它们是 <div> 的直接子元素

$(document).ready(function(){  $("div").children("p.1"); });
jQuery find() 方法
find() 方法返回被选元素的后代元素 一路向下直到最后一个后代

返回属于 <div> 后代的所有 <span> 元素

$(document).ready(function(){  $("div").find("span"); });

返回 <div> 的所有后代

$(document).ready(function(){  $("div").find("*"); });

jQuery 遍历同胞(siblings)

在 DOM 树中水平遍历
  • siblings()
  • next()
  • nextAll()
  • nextUntil()
  • prev()
  • prevAll()
  • prevUntil()
jQuery siblings() 方法
siblings() 方法返回被选元素的所有同胞元素

返回 <h2> 的所有同胞元素

$(document).ready(function(){  $("h2").siblings(); });

使用可选参数来过滤对同胞元素的搜索。

返回属于 <h2> 的同胞元素的所有 <p> 元素:

$(document).ready(function(){  $("h2").siblings("p"); });
jQuery next() 方法
next() 方法返回被选元素的下一个同胞元素 该方法只返回一个元素

返回 <h2> 的下一个同胞元素

$(document).ready(function(){  $("h2").next(); });
jQuery nextAll() 方法
nextAll() 方法返回被选元素的所有跟随的同胞元素

返回 <h2> 的所有跟随的同胞元素

$(document).ready(function(){  $("h2").nextAll(); });
jQuery nextUntil() 方法
nextUntil() 方法返回介于两个给定参数之间的所有跟随的同胞元素

返回介于 <h2> 与 <h6> 元素之间的所有同胞元素

$(document).ready(function(){  $("h2").nextUntil("h6"); });
jQuery prev(), prevAll() & prevUntil() 方法
prev(), prevAll() 以及 prevUntil() 方法的工作方式与上面的方法类似,只不过方向相反而已:它们返回的是前面的同胞元素(在 DOM 树中沿着同胞之前元素遍历,而不是之后元素遍历)

jQuery 遍历- 过滤

缩小搜索元素的范围
first(), last() 和 eq(),它们允许您基于其在一组元素中的位置来选择一个特定的元素
filter() 和 not() 选取匹配或不匹配某项指定标准的元素
jQuery first() 方法
first() 方法返回被选元素的首个元素

选取首个 <div> 元素内部的第一个 <p> 元素

$(document).ready(function(){  $("div p").first(); });
jQuery last() 方法
last() 方法返回被选元素的最后一个元素。

选择最后一个 <div> 元素中的最后一个 <p> 元素

$(document).ready(function(){  $("div p").last(); });
jQuery eq() 方法
eq() 方法返回被选元素中带有指定索引号的元素。

选取第二个 <p> 元素(索引号 1)

$(document).ready(function(){  $("p").eq(1); });
jQuery filter() 方法
filter() 方法允许您规定一个标准 不匹配这个标准的元素会被从集合中删除 匹配的元素会被返回

返回带有类名 "url" 的所有 <p> 元素

$(document).ready(function(){  $("p").filter(".url"); });
jQuery not() 方法
not() 方法返回不匹配标准的所有元素 not() 方法与 filter() 相反 

返回不带有类名 "url" 的所有 <p> 元素

$(document).ready(function(){  $("p").not(".url"); });

jQuery - AJAX 简介

AJAX 是与服务器交换数据的技术,它在不重载全部页面的情况下,实现了对部分网页的更新

什么是 AJAX?

AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML)

在不重载整个网页的情况下,AJAX 通过后台加载数据,并在网页上进行显示
jQuery load() 方法
load() 方法从服务器加载数据,并把返回的数据放入被选元素中。

语法:$(selector).load(URL,data,callback);

必需的 *URL* 参数规定您希望加载的 URL

可选的 *data* 参数规定与请求一同发送的查询字符串键/值对集合。

可选的 *callback* 参数是 load() 方法完成后所执行的函数名称

把文件 "demo_test.txt" 的内容加载到指定的 <div> 元素中

$("#div1").load("demo_test.txt");
把 jQuery 选择器添加到 URL 参数

把 "demo_test.txt" 文件中 id="p1" 的元素的内容,加载到指定的 <div> 元素中

$("#div1").load("demo_test.txt #p1");

可选的 callback 参数规定当 load() 方法完成后所要允许的回调函数。回调函数可以设置不同的参数:

- *responseTxt* - 包含调用成功时的结果内容
- *statusTXT* - 包含调用的状态
- *xhr* - 包含 XMLHttpRequest 对象
load() 方法完成后显示一个提示框。如果 load() 方法已成功,则显示"外部内容加载成功!",而如果失败,则显示错误消息:

$("button").click(function(){  $("#div1").load("demo_test.txt",function(responseTxt,statusTxt,xhr){    if(statusTxt=="success")      alert("外部内容加载成功!");    if(statusTxt=="error")      alert("Error: "+xhr.status+": "+xhr.statusText);  }); });

jQuery - AJAX get() 和 post() 方法

jQuery get() 和 post() 方法用于通过 HTTP GET 或 POST 请求从服务器请求数据
#### HTTP 请求:GET vs. POST

两种在客户端和服务器端进行请求-响应的常用方法是:GET 和 POST。

- GET - 从指定的资源请求数据
- *POST* - 向指定的资源提交要处理的数据

GET 基本上用于从服务器获得数据 GET 方法可能返回缓存数据

POST 也可用于从服务器获取数据 POST 方法不会缓存数据 并且常用于连同请求一起发送数据
#### jQuery $.get() 方法

$.get() 方法通过 HTTP GET 请求从服务器上请求数据。

### 语法:

$.get(*URL*,*callback*);

必需的 *URL* 参数规定您希望请求的 URL。

可选的 *callback* 参数是请求成功后所执行的函数名。
$.get() 方法从服务器上的一个文件中取回数据

$("button").click(function(){  $.get("demo_test.php",function(data,status){    alert("数据: " + data + "\n状态: " + status);  }); });

$.get() 的第一个参数是我们希望请求的 URL("demo_test.php")。

第二个参数是回调函

第一个回调参数存有被请求页面的内容,第二个回调参数存有请求的状态
jQuery $.post() 方法
$.post() 方法通过 HTTP POST 请求向服务器提交数据。

**语法:**

$.post(*URL,data,callback*);

必需的 *URL* 参数规定您希望请求的 URL。

可选的 *data* 参数规定连同请求发送的数据。

可选的 *callback* 参数是请求成功后所执行的函数名。
使用 $.post() 连同请求一起发送数据

$("button").click(function(){    

$.post("/try/ajax/demo_test_post.php",    {        name:"菜鸟教程",        url:"http://www.runoob.com"    },    function(data,status){        alert("数据: \n" + data + "\n状态: " + status);    }); });

$.post() 的第一个参数是请求的 URL ("demo_test_post.php")。

然后连请求(name 和 url)一起发送数据。

"demo_test_post.php" 中的 PHP 脚本读取这些参数,对它们进行处理,然后返回结果

第三个参数是回调函数。第一个回调参数存有被请求页面的内容,而第二个参数存有请求的状态

jQuery noConflict() 方法

  • noConflict() 方法会释放对 $ 标识符的控制 其他脚本就可以使用它
  • 可以通过全名替代简写的方式来使用 jQuery
$.noConflict(); jQuery(document).ready(function(){  jQuery("button").click(function(){    jQuery("p").text("jQuery 仍然在工作!");  }); });
  • 创建自己的简写 noConflict() 可返回对 jQuery 的引用
var jq = $.noConflict(); jq(document).ready(function(){  jq("button").click(function(){    jq("p").text("jQuery 仍然在工作!");  }); });
  • jQuery 代码块使用 $ 简写,可以把 $ 符号作为变量传递给 ready 方法 函数内使用 $ 符号 而在函数外 不得不使用 “jQuery”
$.noConflict(); jQuery(document).ready(function($){  $("button").click(function(){    $("p").text("jQuery 仍然在工作!");  }); });

jQuery 效果

  • jQuery hide() 和 show() 隐藏和显示 HTML 元素:
$("#hide").click(function(){
  $("p").hide();
});
 
$("#show").click(function(){
  $("p").show();
});
可选的 speed 参数规定隐藏/显示的速度,可以取以下值:"slow"、"fast" 或毫秒。

可选的 callback 参数是隐藏或显示完成后所执行的函数名称
$("button").click(function(){
  $("p").hide(1000);
});
$(document).ready(function(){
  $(".hidebtn").click(function(){
    $("div").hide(1000,"linear",function(){
      alert("Hide() 方法已完成!");
    });
  });
});

  • jQuery toggle() 切换 hide() 和 show() 方法 显示被隐藏的元素,并隐藏已显示的元素
$("button").click(function(){
  $("p").toggle();
});
  • jQuery fadeIn() 用于淡入已隐藏的元素
语法:
$(selector).fadeIn(speed,callback);

可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒

可选的 callback 参数是 fading 完成后所执行的函数名称。

有不同参数的 fadeIn() 方法:
$("button").click(function(){
  $("#div1").fadeIn();
  $("#div2").fadeIn("slow");
  $("#div3").fadeIn(3000);
});
  • jQuery fadeOut() 方法用于淡出可见元素
语法:
$(selector).fadeOut(speed,callback);

可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。

可选的 callback 参数是 fading 完成后所执行的函数名称。
有不同参数的 fadeOut() 方法:
$("button").click(function(){
  $("#div1").fadeOut();
  $("#div2").fadeOut("slow");
  $("#div3").fadeOut(3000);
});
  • jQuery fadeToggle() 方法可以在 fadeIn() 与 fadeOut() 方法之间进行切换
    1. 如果元素已淡出,则 fadeToggle() 会向元素添加淡入效果
    2. 如果元素已淡入,则 fadeToggle() 会向元素添加淡出效果
语法:
$(selector).fadeToggle(speed,callback);

可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。

可选的 callback 参数是 fading 完成后所执行的函数名称。

有不同参数的 fadeToggle() 方法:
$("button").click(function(){
  $("#div1").fadeToggle();
  $("#div2").fadeToggle("slow");
  $("#div3").fadeToggle(3000);
});
  • jQuery fadeTo() 方法允许渐变为给定的不透明度(值介于 0 与 1 之间)
语法:
$(selector).fadeTo(speed,opacity,callback);

必需的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。

fadeTo() 方法中必需的 opacity 参数将淡入淡出效果设置为给定的不透明度(值介于 0 与 1 之间)。

可选的 callback 参数是该函数完成后所执行的函数名称。
有不同参数的 fadeTo() 方法:
$("button").click(function(){
  $("#div1").fadeTo("slow",0.15);
  $("#div2").fadeTo("slow",0.4);
  $("#div3").fadeTo("slow",0.7);
});
  • jQuery slideDown() 方法用于向下滑动元素
语法:
$(selector).slideDown(speed,callback);

可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。

可选的 callback 参数是滑动完成后所执行的函数名称。

$("#flip").click(function(){
  $("#panel").slideDown();
});
  • jQuery slideUp() 方法用于向上滑动元素
语法:
$(selector).slideUp(speed,callback);

可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。

可选的 callback 参数是滑动完成后所执行的函数名称。

$("#flip").click(function(){
  $("#panel").slideUp();
});
  • jQuery slideToggle() 方法可以在 slideDown() 与 slideUp() 方法之间进行切换
    1. 如果元素向下滑动,则 slideToggle() 可向上滑动它们
    2. 如果元素向上滑动,则 slideToggle() 可向下滑动它们
 $(selector).slideToggle(speed,callback);

可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。

可选的 callback 参数是滑动完成后所执行的函数名称。

$("#flip").click(function(){
  $("#panel").slideToggle();
});
  • jQuery animate() 方法用于创建自定义动画
语法:
$(selector).animate({params},speed,callback);

必需的 params 参数定义形成动画的 CSS 属性。

可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。

可选的 callback 参数是动画完成后所执行的函数名称。

<div> 元素往右边移动了 250 像素:
$("button").click(function(){
  $("div").animate({left:'250px'});
});

jQuery animate() - 操作多个属性
$("button").click(function(){
  $("div").animate({
    left:'250px',
    opacity:'0.5',
    height:'150px',
    width:'150px'
  });
});
jQuery animate() - 使用相对值
也可以定义相对值(该值相对于元素的当前值)。需要在值的前面加上 += 或 -=:
$("button").click(function(){
  $("div").animate({
    left:'250px',
    height:'+=150px',
    width:'+=150px'
  });
});

jQuery animate() - 使用预定义的值

您甚至可以把属性的动画值设置为 "show"、"hide" 或 "toggle":

$("button").click(function(){
  $("div").animate({
    height:'toggle'
  });
});
jQuery animate() - 使用队列功能


编写多个 animate() 调用,jQuery 会创建包含这些方法调用的"内部"队列。然后逐一运行这些 animate 调用。
$("button").click(function(){
  var div=$("div");
  div.animate({height:'300px',opacity:'0.4'},"slow");
  div.animate({width:'300px',opacity:'0.8'},"slow");
  div.animate({height:'100px',opacity:'0.4'},"slow");
  div.animate({width:'100px',opacity:'0.8'},"slow");
});

 <div> 元素往右边移动了 100 像素,然后增加文本的字号:
$("button").click(function(){
  var div=$("div");
  div.animate({left:'100px'},"slow");
  div.animate({fontSize:'3em'},"slow");
});
  • jQuery stop() 方法用于停止动画或效果,在它们完成之前 stop() 方法适用于所有 jQuery 效果函数,包括滑动、淡入淡出和自定义动画
语法:

$(selector).stop(stopAll,goToEnd);

可选的 stopAll 参数规定是否应该清除动画队列。默认是 false,即仅停止活动的动画,允许任何排入队列的动画向后执行。

可选的 goToEnd 参数规定是否立即完成当前动画。默认是 false。

因此,默认地,stop() 会清除在被选元素上指定的当前动画
不带参数:

$("#stop").click(function(){  $("#panel").stop(); });
  • jQuery Callback 方法 Callback 函数在当前动画 100% 完成之后执行
$("p").hide("slow")

speed 或 duration 参数可以设置许多不同的值,比如 "slow", "fast", "normal" 或毫秒。


在隐藏效果完全实现后回调函数:
使用 callback 实例
$("button").click(function(){
  $("p").hide("slow",function(){
    alert("段落现在被隐藏了");
  });
});

没有回调函数,警告框会在隐藏效果完成前弹出:
没有 callback(回调)
$("button").click(function(){
  $("p").hide(1000);
  alert("段落现在被隐藏了");
});

  • jQuery - 链(Chaining)
  • Chaining 允许我们在一条语句中运行多个 jQuery 方法(在相同的元素上)如需链接一个动作,您只需简单地把该动作追加到之前的动作上
"p1" 元素首先会变为红色,然后向上滑动,再然后向下滑动:
实例
$("#p1").css("color","red").slideUp(2000).slideDown(2000);


$("#p1").css("color","red")
  .slideUp(2000)
  .slideDown(2000);


jQuery 会抛掉多余的空格,并当成一行长代码来执行上面的代码行

jQuery 事件方法总览

方法描述
bind()向元素添加事件处理程序
blur()添加/触发失去焦点事件
change()添加/触发 change 事件
click()添加/触发 click 事件
dblclick()添加/触发 double click 事件
delegate()向匹配元素的当前或未来的子元素添加处理程序
die()在版本 1.9 中被移除。移除所有通过 live() 方法添加的事件处理程序
error()在版本 1.8 中被废弃。添加/触发 error 事件
event.currentTarget在事件冒泡阶段内的当前 DOM 元素
event.data包含当前执行的处理程序被绑定时传递到事件方法的可选数据
event.delegateTarget返回当前调用的 jQuery 事件处理程序所添加的元素
event.isDefaultPrevented()返回指定的 event 对象上是否调用了 event.preventDefault()
event.isImmediatePropagationStopped()返回指定的 event 对象上是否调用了 event.stopImmediatePropagation()
event.isPropagationStopped()返回指定的 event 对象上是否调用了 event.stopPropagation()
event.namespace返回当事件被触发时指定的命名空间
event.pageX返回相对于文档左边缘的鼠标位置
event.pageY返回相对于文档上边缘的鼠标位置
event.preventDefault()阻止事件的默认行为
event.relatedTarget返回当鼠标移动时哪个元素进入或退出
event.result包含由被指定事件触发的事件处理程序返回的最后一个值
event.stopImmediatePropagation()阻止其他事件处理程序被调用
event.stopPropagation()阻止事件向上冒泡到 DOM 树,阻止任何父处理程序被事件通知
event.target返回哪个 DOM 元素触发事件
event.timeStamp返回从 1970 年 1 月 1 日到事件被触发时的毫秒数
event.type返回哪种事件类型被触发
event.which返回指定事件上哪个键盘键或鼠标按钮被按下
event.metaKey事件触发时 META 键是否被按下
focus()添加/触发 focus 事件
focusin()添加事件处理程序到 focusin 事件
focusout()添加事件处理程序到 focusout 事件
hover()添加两个事件处理程序到 hover 事件
keydown()添加/触发 keydown 事件
keypress()添加/触发 keypress 事件
keyup()添加/触发 keyup 事件
live()在版本 1.9 中被移除。添加一个或多个事件处理程序到当前或未来的被选元素
load()在版本 1.8 中被废弃。添加一个事件处理程序到 load 事件
mousedown()添加/触发 mousedown 事件
mouseenter()添加/触发 mouseenter 事件
mouseleave()添加/触发 mouseleave 事件
mousemove()添加/触发 mousemove 事件
mouseout()添加/触发 mouseout 事件
mouseover()添加/触发 mouseover 事件
mouseup()添加/触发 mouseup 事件
off()移除通过 on() 方法添加的事件处理程序
on()向元素添加事件处理程序
one()向被选元素添加一个或多个事件处理程序。该处理程序只能被每个元素触发一次
$.proxy()接受一个已有的函数,并返回一个带特定上下文的新的函数
ready()规定当 DOM 完全加载时要执行的函数
resize()添加/触发 resize 事件
scroll()添加/触发 scroll 事件
select()添加/触发 select 事件
submit()添加/触发 submit 事件
toggle()在版本 1.9 中被移除。添加 click 事件之间要切换的两个或多个函数
trigger()触发绑定到被选元素的所有事件
triggerHandler()触发绑定到被选元素的指定事件上的所有函数
unbind()从被选元素上移除添加的事件处理程序
undelegate()从现在或未来的被选元素上移除事件处理程序
unload()在版本 1.8 中被废弃。添加事件处理程序到 unload 事件
contextmenu()添加事件处理程序到 contextmenu 事件
$.holdReady()用于暂停或恢复.ready() 事件的执行

jQuery 选择器总览

选择器实例选取
*$("*")所有元素
#id$("#lastname")id=“lastname” 的元素
.class$(".intro")class=“intro” 的所有元素
.class,.class$(".intro,.demo")class 为 “intro” 或 “demo” 的所有元素
element$(“p”)所有

元素

el1,el2,el3$(“h1,div,p”)所有

元素

:first$(“p:first”)第一个

元素

:last$(“p:last”)最后一个

元素

:even$(“tr:even”)所有偶数
:odd$(“tr:odd”)所有奇数
:first-child$(“p:first-child”)属于其父元素的第一个子元素的所有

元素

:first-of-type$(“p:first-of-type”)属于其父元素的第一个

元素的所有

元素

:last-child$(“p:last-child”)属于其父元素的最后一个子元素的所有

元素

:last-of-type$(“p:last-of-type”)属于其父元素的最后一个

元素的所有

元素

:nth-child(n)$(“p:nth-child(2)”)属于其父元素的第二个子元素的所有

元素

:nth-last-child(n)$(“p:nth-last-child(2)”)属于其父元素的第二个子元素的所有

元素,从最后一个子元素开始计数

:nth-of-type(n)$(“p:nth-of-type(2)”)属于其父元素的第二个

元素的所有

元素

:nth-last-of-type(n)$(“p:nth-last-of-type(2)”)属于其父元素的第二个

元素的所有

元素,从最后一个子元素开始计数

:only-child$(“p:only-child”)属于其父元素的唯一子元素的所有

元素

:only-of-type$(“p:only-of-type”)属于其父元素的特定类型的唯一子元素的所有

元素

parent > child$(“div > p”)
元素的直接子元素的所有

元素

parent descendant$(“div p”)
元素的后代的所有

元素

element + next$(“div + p”)每个
元素相邻的下一个

元素

element ~ siblings$(“div ~ p”)
元素同级的所有

元素

:eq(index)$(“ul li:eq(3)”)列表中的第四个元素(index 值从 0 开始)
:gt(no)$(“ul li:gt(3)”)列举 index 大于 3 的元素
:lt(no)$(“ul li:lt(3)”)列举 index 小于 3 的元素
:not(selector)$(“input:not(:empty)”)所有不为空的输入元素
:header$(":header")所有标题元素

,

:animated$(":animated")所有动画元素
:focus$(":focus")当前具有焦点的元素
:contains(text)$(":contains(‘Hello’)")所有包含文本 “Hello” 的元素
:has(selector)$(“div:has§”)所有包含有

元素在其内的

元素

:empty$(":empty")所有空元素
:parent$(":parent")匹配所有含有子元素或者文本的父元素。
:hidden$(“p:hidden”)所有隐藏的

元素

:visible$(“table:visible”)所有可见的表格
:root$(":root")文档的根元素
:lang(language)$(“p:lang(de)”)所有 lang 属性值为 “de” 的

元素

[attribute]$("[href]")所有带有 href 属性的元素
[attribute=value]$("[href=‘default.htm’]")所有带有 href 属性且值等于 “default.htm” 的元素
[attribute!=value]$("[href!=‘default.htm’]")所有带有 href 属性且值不等于 “default.htm” 的元素
[attribute$=value] ( " [ h r e f ("[href ("[href=’.jpg’]")所有带有 href 属性且值以 “.jpg” 结尾的元素
[attribute|=value]$("[title|=‘Tomorrow’]")所有带有 title 属性且值等于 ‘Tomorrow’ 或者以 ‘Tomorrow’ 后跟连接符作为开头的字符串
[attribute^=value]$("[title^=‘Tom’]")所有带有 title 属性且值以 “Tom” 开头的元素
[attribute~=value]$("[title~=‘hello’]")所有带有 title 属性且值包含单词 “hello” 的元素
[attribute*=value]$("[title*=‘hello’]")所有带有 title 属性且值包含字符串 “hello” 的元素
[name=value][name2=value2] ( " i n p u t [ i d ] [ n a m e ( "input[id][name ("input[id][name=‘man’]" )带有 id 属性,并且 name 属性以 man 结尾的输入框
:input$(":input")所有 input 元素
:text$(":text")所有带有 type=“text” 的 input 元素
:password$(":password")所有带有 type=“password” 的 input 元素
:radio$(":radio")所有带有 type=“radio” 的 input 元素
:checkbox$(":checkbox")所有带有 type=“checkbox” 的 input 元素
:submit$(":submit")所有带有 type=“submit” 的 input 元素
:reset$(":reset")所有带有 type=“reset” 的 input 元素
:button$(":button")所有带有 type=“button” 的 input 元素
:image$(":image")所有带有 type=“image” 的 input 元素
:file$(":file")所有带有 type=“file” 的 input 元素
:enabled$(":enabled")所有启用的元素
:disabled$(":disabled")所有禁用的元素
:selected$(":selected")所有选定的下拉列表元素
:checked$(":checked")所有选中的复选框选项
.selector$(selector).selector在jQuery 1.7中已经不被赞成使用。返回传给jQuery()的原始选择器
:target$( “p:target” )选择器将选中ID和URI中一个格式化的标识符相匹配的

元素

元素,索引值从 0 开始,第一个元素是偶数 (0),第二个元素是奇数 (1),以此类推。 元素,索引值从 0 开始,第一个元素是偶数 (0),第二个元素是奇数 (1),以此类推。

jQuery HTML / CSS 方法总览

方法描述
addClass()向被选元素添加一个或多个类名
after()在被选元素后插入内容
append()在被选元素的结尾插入内容
appendTo()在被选元素的结尾插入 HTML 元素
attr()设置或返回被选元素的属性/值
before()在被选元素前插入内容
clone()生成被选元素的副本
css()为被选元素设置或返回一个或多个样式属性
detach()移除被选元素(保留数据和事件)
empty()从被选元素移除所有子节点和内容
hasClass()检查被选元素是否包含指定的 class 名称
height()设置或返回被选元素的高度
html()设置或返回被选元素的内容
innerHeight()返回元素的高度(包含 padding,不包含 border)
innerWidth()返回元素的宽度(包含 padding,不包含 border)
insertAfter()在被选元素后插入 HTML 元素
insertBefore()在被选元素前插入 HTML 元素
offset()设置或返回被选元素的偏移坐标(相对于文档)
offsetParent()返回第一个定位的祖先元素
outerHeight()返回元素的高度(包含 padding 和 border)
outerWidth()返回元素的宽度(包含 padding 和 border)
position()返回元素的位置(相对于父元素)
prepend()在被选元素的开头插入内容
prependTo()在被选元素的开头插入 HTML 元素
prop()设置或返回被选元素的属性/值
remove()移除被选元素(包含数据和事件)
removeAttr()从被选元素移除一个或多个属性
removeClass()从被选元素移除一个或多个类
removeProp()移除通过 prop() 方法设置的属性
replaceAll()把被选元素替换为新的 HTML 元素
replaceWith()把被选元素替换为新的内容
scrollLeft()设置或返回被选元素的水平滚动条位置
scrollTop()设置或返回被选元素的垂直滚动条位置
text()设置或返回被选元素的文本内容
toggleClass()在被选元素中添加/移除一个或多个类之间切换
unwrap()移除被选元素的父元素
val()设置或返回被选元素的属性值(针对表单元素)
width()设置或返回被选元素的宽度
wrap()在每个被选元素的周围用 HTML 元素包裹起来
wrapAll()在所有被选元素的周围用 HTML 元素包裹起来
wrapInner()在每个被选元素的内容周围用 HTML 元素包裹起来
$.escapeSelector()转义CSS选择器中有特殊意义的字符或字符串
$.cssHooks提供了一种方法通过定义函数来获取和设置特定的CSS值

jQuery 遍历方法总览

方法描述
add()把元素添加到匹配元素的集合中
addBack()把之前的元素集添加到当前集合中
andSelf()在版本 1.8 中被废弃。addBack() 的别名
children()返回被选元素的所有直接子元素
closest()返回被选元素的第一个祖先元素
contents()返回被选元素的所有直接子元素(包含文本和注释节点)
each()为每个匹配元素执行函数
end()结束当前链中最近的一次筛选操作,并把匹配元素集合返回到前一次的状态
eq()返回带有被选元素的指定索引号的元素
filter()把匹配元素集合缩减为匹配选择器或匹配函数返回值的新元素
find()返回被选元素的后代元素
first()返回被选元素的第一个元素
has()返回拥有一个或多个元素在其内的所有元素
is()根据选择器/元素/jQuery 对象检查匹配元素集合,如果存在至少一个匹配元素,则返回 true
last()返回被选元素的最后一个元素
map()把当前匹配集合中的每个元素传递给函数,产生包含返回值的新 jQuery 对象
next()返回被选元素的后一个同级元素
nextAll()返回被选元素之后的所有同级元素
nextUntil()返回介于两个给定参数之间的每个元素之后的所有同级元素
not()从匹配元素集合中移除元素
offsetParent()返回第一个定位的父元素
parent()返回被选元素的直接父元素
parents()返回被选元素的所有祖先元素
parentsUntil()返回介于两个给定参数之间的所有祖先元素
prev()返回被选元素的前一个同级元素
prevAll()返回被选元素之前的所有同级元素
prevUntil()返回介于两个给定参数之间的每个元素之前的所有同级元素
siblings()返回被选元素的所有同级元素
slice()把匹配元素集合缩减为指定范围的子集

jQuery AJAX 方法总览

方法描述
$.ajax()执行异步 AJAX 请求
$.ajaxPrefilter()在每个请求发送之前且被 $.ajax() 处理之前,处理自定义 Ajax 选项或修改已存在选项
$.ajaxSetup()为将来的 AJAX 请求设置默认值
$.ajaxTransport()创建处理 Ajax 数据实际传送的对象
$.get()使用 AJAX 的 HTTP GET 请求从服务器加载数据
$.getJSON()使用 HTTP GET 请求从服务器加载 JSON 编码的数据
$.getScript()使用 AJAX 的 HTTP GET 请求从服务器加载并执行 JavaScript
$.param()创建数组或对象的序列化表示形式(可用于 AJAX 请求的 URL 查询字符串)
$.post()使用 AJAX 的 HTTP POST 请求从服务器加载数据
ajaxComplete()规定 AJAX 请求完成时运行的函数
ajaxError()规定 AJAX 请求失败时运行的函数
ajaxSend()规定 AJAX 请求发送之前运行的函数
ajaxStart()规定第一个 AJAX 请求开始时运行的函数
ajaxStop()规定所有的 AJAX 请求完成时运行的函数
ajaxSuccess()规定 AJAX 请求成功完成时运行的函数
load()从服务器加载数据,并把返回的数据放置到指定的元素中
serialize()编码表单元素集为字符串以便提交
serializeArray()编码表单元素集为 names 和 values 的数组

jQuery 杂项方法总览

方法描述
data()向被选元素附加数据,或者从被选元素获取数据
each()为每个匹配元素执行函数
get()获取由选择器指定的 DOM 元素
index()从匹配元素中搜索给定元素
$.noConflict()释放变量 $ 的 jQuery 控制权
$.param()创建数组或对象的序列化表示形式(可在生成 AJAX 请求时用于 URL 查询字符串中)
removeData()移除之前存放的数据
size()在版本 1.8 中被废弃。返回被 jQuery 选择器匹配的 DOM 元素的数量
toArray()以数组的形式检索所有包含在 jQuery 集合中的所有 DOM 元素
pushStack()将一个DOM元素集合加入到jQuery栈
$.when()提供一种方法来执行一个或多个对象的回调函数

jQuery 实用工具总览

方法描述
$.boxModel在版本 1.8 中被废弃。检测浏览器是否使用W3C的CSS盒模型渲染当前页面
$.browser在版本 1.9 中被废弃。返回用户当前使用的浏览器的相关信息
$.contains()判断另一个DOM元素是否是指定DOM元素的后代
$.each()遍历指定的对象和数组
$.extend()将一个或多个对象的内容合并到目标对象
$.fn.extend()为jQuery扩展一个或多个实例属性和方法
$.globalEval()全局性地执行一段JavaScript代码
$.grep()过滤并返回满足指定函数的数组元素
$.inArray()在数组中查找指定值并返回它的索引值(如果没有找到,则返回-1)
$.isArray()判断指定参数是否是一个数组
$.isEmptyObject()检查对象是否为空(不包含任何属性)
$.isFunction()判断指定参数是否是一个函数
$.isNumeric()判断指定参数是否是一个数字值
$.isPlainObject()判断指定参数是否是一个纯粹的对象
$.isWindow()判断指定参数是否是一个窗口
$.isXMLDoc()判断一个DOM节点是否位于XML文档中,或者其本身就是XML文档
$.makeArray()将一个类似数组的对象转换为真正的数组对象
$.map()指定函数处理数组中的每个元素(或对象的每个属性),并将处理结果封装为新的数组返回
$.merge()合并两个数组内容到第一个数组
$.noop()一个空函数
$.now()返回当前时间
$.parseHTML()将HTML字符串解析为对应的DOM节点数组
$.parseJSON()将符合标准格式的JSON字符串转为与之对应的JavaScript对象
$.parseXML()将字符串解析为对应的XML文档
$.trim()去除字符串两端的空白字符
$.type()确定JavaScript内置对象的类型
$.unique()在jQuery 3.0中被弃用。对DOM元素数组进行排序,并移除重复的元素
$.uniqueSort()对DOM元素数组进行排序,并移除重复的元素
$.data()在指定的元素上存取数据,并返回设置值
$.hasData()确定一个元素是否有相关的jQuery数据
$.sub()创建一个新的jQuery副本,其属性和方法可以修改,而不会影响原来的jQuery对象
$.speed创建一个包含一组属性的对象用来定义自定义动画
$.htmlPrefilter()通过jQuery操作方法修改和过滤HTML字符串
$.readyException()处理包裹在jQuery()中函数同步抛出的错误

jQuery 回调对象总览

jQuery 1.7 版本中新增的 jQuery.Callbacks() 函数,返回一个多功能对象,此对象提供了一种强大的方法来管理回调列表。它能够增加、删除、触发、禁用回调函数

方法描述
$.Callbacks()一个多用途的回调列表对象,用来管理回调函数列表
callbacks.add()在回调列表中添加一个回调或回调的集合
callbacks.disable()禁用回调列表中的回调函数
callbacks.disabled()确定回调列表是否已被禁用
callbacks.empty()从列表中清空所有的回调
callbacks.fire()传入指定的参数调用所有的回调
callbacks.fired()确定回调是否至少已经调用一次
callbacks.firewith()给定的上下文和参数访问列表中的所有回调
callbacks.has()判断回调列表中是否添加过某回调函数
callbacks.lock()锁定当前状态的回调列表
callbacks.locked()判断回调列表是否被锁定
callbacks.remove()从回调列表中的删除一个回调或回调集合

jQuery 延迟对象总览

Deferred 延迟对象,它是通过调用 jQuery.Deferred() 方法来创建的可链接的实用对象。它可注册多个回调函数到回调列表,调用回调列表并且传递异步或同步功能的成功或失败的状态
延迟对象是可链接的,类似于一个 jQuery 对象可链接的方式,区别于它有自己的方法。在创建一个 Deferred 对象之后,直接链接到通过调用一个或多个的方法创建或保存的对象。

方法描述
$.Deferred()返回一个链式实用对象方法来注册多个回调
deferred.always()当Deferred(延迟)对象被受理或被拒绝时,调用添加的处理程序
deferred.done()当Deferred(延迟)对象被受理时,调用添加的处理程序
deferred.fail()当Deferred(延迟)对象被拒绝时,调用添加的处理程序
deferred.isRejected()从jQuery1.7开始已经过时,确定 Deferred 对象是否已被拒绝
deferred.isResolved()从jQuery1.7开始已经过时,确定 Deferred 对象是否已被解决
deferred.notify()给定一个参数,调用正在延迟对象上进行的回调函数( progressCallbacks )
deferred.notifyWith()给定上下文和参数,调用正在延迟对象上进行的回调函数( progressCallbacks )
deferred.pipe()过滤 and/or 链式延迟对象的工具方法
deferred.progress()当Deferred(延迟)对象生成进度通知时,调用添加处理程序
deferred.promise()返回 Deferred(延迟)的 Promise 对象
deferred.reject()拒绝 Deferred(延迟)对象,并根据给定的参数调用任何 failCallbacks 回调函数
deferred.rejectWith()拒绝 Deferred(延迟)对象,并根据给定的 context 和 args 参数调用任何 failCallbacks 回调函数
deferred.resolve()解决Deferred(延迟)对象,并根据给定的参数调用任何 doneCallbacks 回调函数
deferred.resolveWith()解决Deferred(延迟)对象,并根据给定的context 和 args 参数调用任何 doneCallbacks 回调函数
deferred.state()确定一个Deferred(延迟)对象的当前状态
deferred.then()当Deferred(延迟)对象解决,拒绝或仍在进行中时,调用添加处理程序
.promise()返回一个 Promise 对象,观察某种类型被绑定到集合的所有行动,是否已被加入到队列中

jQuery 属性总览

方法描述
context在版本 1.10 中被废弃。包含被传递到 jQuery 的原始上下文
jquery包含 jQuery 的版本号
jQuery.fx.interval改变以毫秒计的动画运行速率
jQuery.fx.off对所有动画进行全局禁用或启用
jQuery.support包含表示不同浏览器特性或漏洞的属性集(主要用于 jQuery 的内部使用)
length包含 jQuery 对象中元素的数目
jQuery.cssNumber包含所有可以不使用单位的CSS属性的对象

来源: 菜鸟教程 |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值