jQuery

jQuery是一个优秀的JavaScript框架,一个轻量级的JavaScript函数库,极大地简化了JS编程。

jQuery对象

jQuery提供的方法都是针对jQuery对象特有的,而且大部分方法的返回值类型也是jQuery类型的,所有方法可以连缀调用。

jQuery.action().action();

 

文档就绪事件

您也许已经注意到在我们的实例中的所有 jQuery 函数位于一个 document ready 函数中:

$(document).ready(function(){
   // 开始写 jQuery 代码...
});
或者
$(function(){
   // 开始写 jQuery 代码...
});

这是为了防止文档在完全加载(就绪)之前运行 jQuery 代码,即在 DOM 加载完成后才可以对 DOM 进行操作。

如果在文档没有完全加载之前就运行函数,操作可能失败。

$(function(){
   // 开始写 jQuery 代码...
});

 

jQuery 选择器

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

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

jQuery 中所有选择器都以美元符号开头:$()。

选择器
选择器分类实例选取
*$("*")所有元素
元素选择器$("p")在页面中选取所有 <p> 元素
id选择器$("#test")在页面中选取 id="test" 的元素
类选择器$(".test")在页面中选取所有 class="test" 的元素
自定义属性选择器$("[test]")在页面中选取带有test属性的元素
CSS选择器$(“P”).css(“color”,”red”)CSS选择器可用于改变HTML元素的CSS属性
.class.class$(".intro.demo")

所有 class="intro" 且 class="demo" 的元素

注意:类名之间是没有空格的。如果中间有空格是要获取.intro下的带.demo的子孙代元素

.class,.class$(".intro,.demo,.end")选取 class 为 "intro"、"demo" 或 "end" 的所有元素

注意:用逗号分隔每个 class。

注意:不要使用数字开头的 class 属性!在某些浏览器中可能出问题。

层次选择器$("div span")选取<div>里的所有<span>元素 【父子】
 $("div >span")选取<div>下元素名是<span>的子元素【父子】
 $("#one +div")选取id为one的元素的下一个<div>同辈元素    等同于$(#one).next("div")
 $("#one~div") 选取id为one的元素后面的所有<div>同辈元素    等同于$(#one).nextAll("div")
 $(#one).siblings("div")获取id为one的元素的所有<div>同辈元素(不管前后)
 $(#one).prev("div") 获取id为one的元素的前面紧邻的同辈<div>元素
基本过滤器$(‘p:first’)选取页面元素内的第一个p元素
 $(‘p:last’)选取页面元素内的最后一个p元素
 $(‘p:not(.select)’)选取选择器不是select的p元素
 $("tr:even")选取索引是偶数的tr元素(索引从0开始)
 $("tr:odd")选取索引是奇数的tr元素(索引从0开始)
 $(‘tr:eq(index)’)选取索引等于index的tr元素(索引从0开始,索引支持负数)
 $(‘tr:gt(index)’)选取索引>index的tr元素(索引从0开始)
 $(‘tr:lt(index)’)选取索引<index的tr元素(索引从0开始)
 $(‘input:focus’)选取当前被焦点的元素
 $(‘:animated’)选取正在执行动画的元素
内容过滤器$(‘:contains(“百度”)’)选取含有”百度”文本的元素
 $(‘:empty’)选取不包含子元素或空文本的元素
 $("div:has(p)")或.has(p)选取所有含有p标签的div元素
 $("td:parent")选取所有带有子元素或包含文本的 <td> 元素
可见性过滤器$(‘:hidden’)选取所有不可见元素
 $(‘:visible’)选取所有可见元素
子元素过滤器$(‘li:first-child’)查找 li 的第一个子元素
 $(‘li:last-child’)查找 li 的最后一个子元素
 $(‘li:only-child’)获取 li 唯一的子元素
 $(‘li:nth-child(index)’)获取 li 指定索引的子元素
表单元素选择器$(":input")选择所有的表单输入元素,包括input, textarea, select 和 button
 $(":text")选择所有的text input元素
 $(":password")选择所有的password input元素 
 $(":radio")选择所有的radio input元素
 $(":checkbox")选择所有的checkbox input元素
 $(":submit")选择所有的submit input元素
 $(":image")选择所有的image input元素 
 $(":reset")选择所有的reset input元素
 $(":button")选择所有的button input元素
 $(":file")选择所有的file input元素
 $(":enabled")选择所有的可操作的表单元素
 $(":disabled")选择所有的不可操作的表单元素
 $(":checked")选择所有的被checked的表单元素
 $("select option:selected")选择所有的select 的子元素中被selected的元素
属性过滤选择器
引号一般可以加也可以不加,但在属性值为特殊符号或者包含空格的时候必须要加引号。
 $("div[id]")选择所有含有id属性的div元素
 $("input[name='newsletter']")选择所有的name属性等于'newsletter'的input元素
 $("input[name!='newsletter']")选择所有的name属性不等于'newsletter'的input元素
 $("input[name^='news']")选择所有的name属性以'news'开头的input元素
 $("input[name$='news']")选择所有的name属性以'news'结尾的input元素
 $("input[name*='man']")选择所有的name属性包含'news'的input元素
 $("input[id][name$='man']")选择所有的含有id属性并且name属性以man结尾的input元素

 

jQuery事件

页面对不同访问者的响应叫做事件。

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

在事件中经常使用术语"触发"(或"激发")例如: "当您按下按键时触发 keypress 事件"。

jQuery事件
方法描述
$(selector).on(event,data,function,map)向被选元素添加一个或多个事件处理程序,以及当事件发生时运行的函数
$(selector).blur(function)当元素失去焦点时发生 blur 事件
$(selector).change(function)当元素的值改变时发生 change 事件
$(selector).click(function)当单击元素时,发生 click 事件
$(selector).dblclick(function)当双击元素时,触发 dblclick 事件
$(selector).delegate(childSelector,event,data,function)使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)
$(selector).focus(function)当元素获得焦点时,发生 focus 事件
$(selector).focusin(function)当元素(或在其内的任意子元素)获得焦点时发生 focusin 事件
$(selector).focusout(function)当元素(或在其内的任意子元素)失去焦点时发生 focusout 事件
$(selector).hover(inFunction,outFunction)hover() 方法规定当鼠标指针悬停在被选元素上时要运行的两个函数
$(selector).keydown(function)当键盘键被按下时发生 keydown 事件
$(selector).keypress(function)keypress 事件与 keydown 事件类似。当按钮被按下时发生该事件
$(selector).keyup(function)当键盘键被松开时发生 keyup 事件
$(selector).trigger(event,eventObj,param1,param2,...)trigger() 方法触发被选元素上指定的事件以及事件的默认行为(比如表单提交)

参数解析:

1.event:必需,规定匹配元素要触发的事件,可以是自定义事件,也可以是标准的事件。
2.param:可选,传递给事件处理函数的参数。

$(selector).triggerHandler(event,param1,param2,...)triggerHandler() 方法触发被选元素上指定的事件

 

jQuery效果

语法说明
$(selector).hide(speed,callback)该方法可以隐藏 HTML 元素

可选的 speed 参数规定隐藏的速度,可以取以下值:"slow"、"fast" 或毫秒

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

$(selector).show(speed,callback)该方法可以显示  HTML 元素

可选的 speed 参数规定显示的速度,可以取以下值:"slow"、"fast" 或毫秒

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

$(selector).toggle(speed,callback)可以使用 toggle() 方法来切换 hide() 和 show() 方法

可选的 speed 参数规定隐藏/显示的速度,可以取以下值:"slow"、"fast" 或毫秒

可选的 callback 参数是隐藏或显示完成后所执行的函数名称

$(selector).fadeIn(speed,callback)jQuery fadeIn() 用于淡入已隐藏的元素

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

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

$(selector).fadeOut(speed,callback)jQuery fadeOut() 用于淡出已隐藏的元素

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

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

$(selector).fadeToggle(speed,callback)

jQuery fadeToggle() 方法可以在 fadeIn() 与 fadeOut() 方法之间进行切换

如果元素已淡出,则 fadeToggle() 会向元素添加淡入效果

如果元素已淡入,则 fadeToggle() 会向元素添加淡出效果

 

jQueryHTML

jQuery 拥有可操作 HTML 元素和属性的强大方法。

jQuery 中非常重要的部分,就是操作 DOM 的能力。

jQuery DOM 操作
语法说明示例
text()返回所选元素的文本内容$("p").text()
html()返回所选元素的内容(包括 HTML 标记)$("p").html()
val()返回表单字段的值$("input").val()
attr()获取属性值$("a").attr("action")
prop()获取属性值$("a").prop("href")
 jQuery 1.6新增了一个prop()方法,attr()和prop()两者都可以用来设置或者读取某元素的属性值,但是他们之间也有很大区别,prop( )是针对Dom元素属性(property),attr( )针对HTML元素属性(attribute)。

prop()函数的结果:

      1.如果有相应的属性,返回指定属性值。

      2.如果没有相应的属性,返回值是空字符串。

attr()函数的结果:

      1.如果有相应的属性,返回指定属性值。

      2.如果没有相应的属性,返回值是 undefined。

对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。

对于HTML元素我们自己自定义的DOM属性,在处理时,使用 attr 方法。

具有 true 和 false 两个属性的属性,如checked、selected、disabled等属性请使用prop()。

text()设置所选元素的文本内容$("<p></p>").text("Hello world!")
html()设置所选元素的内容(包括 HTML 标记)$("div").html("<p>Hello world!</p>")
val()设置表单字段的值$("input").val("RUNOOB")
attr()设置属性值$("a").attr("href","www.baidu.com")

text()、html() 、val()以及attr()拥有回调函数。

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

下面的例子演示带有回调函数的 text():

$("#btn1").click(function(){

    $("#test1").text(function(i,origText){

         return "旧文本: " + origText + " 新文本: Hello world! (index: " + i + ")";

    });

});

clone()clone() 方法生成被选元素的副本,包含子节点、文本和属性。克隆所有的 <p> 元素,并插入到 <body> 元素的结尾:$("p").clone().appendTo("body");

$(selector).clone(true|false);

true    规定需复制事件处理程序。
false    默认。规定不复制事件处理程序。

append()在被选元素的结尾(仍然在元素内部)插入指定内容$("p").append("追加文本")

appendTo() 

在被选元素的结尾(仍然在元素内部)插入指定内容。$("<b>Hello World!</b>").appendTo("p");
提示:append() 和 appendTo() 方法执行的任务相同。不同之处在于:内容和选择器的位置,以及 append() 能够使用函数来附加内容。append能够使用函数给被选元素附加内容,语法为:$(selector).append(function(index,html));其中,function()是必需的,参数index和html都是可选的。index表示接收选择器的index位置,html表示接收选择器的当前html。
prepend()在被选元素的开头插入内容$("p").prepend("在开头追加文本")
after()在被选元素之后插入内容$("img").after("在后面添加文本")
before()在被选元素之前插入内容$("img").before("在前面添加文本")
remove()删除被选元素(及其子元素)$("#div1").remove()
empty()从被选元素中删除子元素$("#div1").empty()

过滤被删除的用元素

jQuery remove() 方法也可接受一个参数,允许您对被删元素进行过滤。

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

下面的例子删除 class="italic" 的所有 <p> 元素:

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

addClass()向被选元素添加一个或多个类$("div").addClass("important blue")
removeClass()从被选元素删除一个或多个类$("h1,h2,p").removeClass("blue")
toggleClass()对被选元素进行添加/删除类的切换操作$("h1,h2,p").toggleClass("blue")
hasClass('className')判断selector里面是否包含有类className,返回一个布尔值$("div").hasClass("blue")
css("propertyname")返回被选元素的一个或多个样式属性$("p").css("color")
css("propertyname","value")设置被选元素的样式属性$("p").css("color","yellow");
css({"propertyname":"value","propertyname":"value"});设置被选元素的多个样式属性$("p").css({"color":"yellow","font-size":"200%"})
jQuery遍历
parent()返回被选元素的直接父元素,该方法只会向上一级对 DOM 树进行遍历

$("span").parent()

$("span").parent("div")

parents()返回被选元素的所有祖先元素,它一路向上直到文档的根元素 (<html>)

$("span").parents()

$("span").parents("div")

parentsUntil()返回介于两个给定元素之间的所有祖先元素$("span").parentsUntil("div")
children()返回被选元素的所有直接子元素 
$("div").children("p.1")可以使用可选参数来过滤对子元素的搜索返回类名为 "1" 的所有 <p> 元素,并且它们是 <div> 的直接子元素
find()返回被选元素的后代元素,一路向下直到最后一个后代

$("div").find("span")

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

$("div").find("*")例子返回 <div> 的所有后代例子返回 <div> 的所有后代
$("div").find("input[type='radio']:checked").val()查找<div>下的选中的radio单选框查找<div>下的选中的radio单选框
siblings()返回被选元素的所有同胞元素$("h2").siblings()
$("h2").siblings("p")也可以使用可选参数来过滤对同胞元素的搜索返回属于 <h2> 的同胞元素的所有 <p> 元素
next()返回被选元素的下一个同胞元素$("h2").next()
nextAll()返回被选元素的所有跟随的同胞元素$("h2").nextAll()
nextUntil() 返回介于两个给定参数之间的所有跟随的同胞元素$("h2").nextUntil("h6")
prev()返回被选元素的上一个同胞元素$("h2").prev()
prevAll()返回被选元素的所有前面的同胞元素$("h2").prevAll()
prevUntil()返回介于两个给定参数之间的所有前面的同胞元素$("h2").prevUntil()
jQuery遍历—过滤
first()返回被选元素的首个元素

$("div p").first()

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

last() 返回被选元素的最后一个元素

$("div p").last()

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

eq()返回被选元素中带有指定索引号的元素,索引号从 0 开始$("p").eq(1)   选取第二个 <p> 元素
filter()允许您规定一个标准。不匹配这个标准的元素会被从集合中删除,匹配的元素会被返回

$("p").filter(".url")

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

not()返回不匹配标准的所有元素

$("p").not(".url")

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

 

jQuery 属性

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

 

jQuery 杂项方法

1. data() 方法

实例

向 <div> 元素附加数据,然后取回该数据:

$("#btn1").click(function(){
    $("div").data("greeting", "Hello World");
});
$("#btn2").click(function(){
    alert($("div").data("greeting"));
});

从被选元素中返回附加的数据。

语法:

$(selector).data(name)
参数描述
name可选。规定要取回的数据的名称。
如果没有规定名称,则该方法将以对象的形式从元素中返回所有存储的数据。

向被选元素附加数据。

语法:

$(selector).data(name,value)
参数描述
name必需。规定要设置的数据的名称。
value必需。规定要设置的数据的值。

使用带有名称/值对的对象向被选元素附加数据。

语法:

$(selector).data(object)
参数描述
object必需。规定包含名称/值对的对象。

 

2. each()方法

① $(selector).each() 方法用来遍历DOM节点,在dom处理上面用的较多。

提示:返回 false 可用于及早停止循环。

实例

输出每个 <li> 元素的文本:

$("button").click(function(){
    $("li").each(function(){
        alert($(this).text())
    });
});

语法:

$(selector).each(function(index,element))
参数描述
function(index,element)必需。为每个匹配元素规定运行的函数。
  • index - 选择器的 index 位置。
  • element - 当前的元素(也可使用 "this" 选择器)。

② $.each(dataresource,function(index,element))方法用来遍历数组、JSON 对象,在数据处理上用的比较多

function traversalData(){
var json = 
     '[{"id":"1","tagName":"apple"},
      {"id":"2","tagName":"orange"},
      {"id":"3","tagName":"banana"},
      {"id":"4","tagName":"watermelon"}]';
 
//遍历JSON对象,JSON.parse() 把json字符串转化为一个对象
if(json.length >0){
    $.each(JSON.parse(json),function(index,obj) {
        alert(index+":"+obj.tagName);
    });
}

 

3. get()方法

get() 方法获取由选择器指定的 DOM 元素。

实例

获取第一个 <p> 元素的名称和值:

$("button").click(function(){
x=$("p").get(0);
$("div").text(x.nodeName + ": " + x.innerHTML);
});

语法:

$(selector).get(index)
参数描述
index可选。规定要获取哪个匹配的元素(通过 index 编号)。

 

4. index() 方法

返回指定元素相对于其他指定元素的 index 位置。这些元素可通过 jQuery 选择器或 DOM 元素来指定。

注意:如果未找到元素,index() 将返回 -1。

实例

获得被点击的 <li> 元素相对于它的同级元素的 index:

$("li").click(function(){
alert($(this).index());
});

语法:

$(selector).index()
$(selector).index(element)
参数描述
element可选。规定要获得 index 位置的元素。可以是 DOM 元素或 jQuery 选择器。

 

5. param() 方法

创建数组或对象的序列化表示形式。序列化的值可在生成 AJAX 请求时用于 URL 查询字符串中。

实例

输出序列化对象的结果:

$("button").click(function(){
$("div").text($.param(personObj));
});

语法:

$.param(object,trad)
参数描述
object必需。规定要序列化的数组或对象。
trad可选。布尔值,指定是否使用参数序列化的传统样式。

 

6. removeData() 方法

移除之前通过 data() 方法设置的数据。

实例

从 <div> 元素中移除之前附加的数据:

$("#btn2").click(function(){
$("div").removeData("greeting");
alert("Greeting is: " + $("div").data("greeting"));
});

语法:

$(selector).removeData(name)
参数描述
name可选。规定要移除的数据的名称。
如果没有规定名称,该方法将从被选元素中移除所有已存储的数据。

 

7. toArray() 方法

以数组的形式返回 jQuery 选择器匹配的元素。

实例

把 <li> 元素转换为数组,然后输出该数组元素的 innerHTML :

$("button").click(function(){
x=$("li").toArray()
for (i=0;i<x.length;i++)
{
alert(x[i].innerHTML);
}
});

语法:

$(selector).toArray()

 

8. pushStack() 方法

将一个DOM元素集合加入到jQuery栈。

实例

向 jQuery 栈中先压入一些元素,然后再删除它们,之后再退回到之前刚压入栈的状态。

<div></div>
<script>
$(function () { 
    $().pushStack( document.getElementsByTagName("div")).remove().end();
})
</script>

语法:

pushStack( elements, name, arguments )
参数描述
elementArray类型 将要压入 jQuery 栈的数组元素,用于生成一个新的 jQuery 对象
name可选。 String类型 生成数组元素的 jQuery 方法名
arguments可选。 Array类型 传递给 Query 方法的参数(用于序列化)

 

9. $.when() 方法

提供一种方法来执行一个或多个对象的回调函数。

实例

一个参数传递给 $.when() 被受理,执行回调函数

$(function () { 
    $.when( { testing: 123 } ).done(
    function(x) { alert(x.testing); } /* alerts "123" */
    );
})

语法:

$.when( deferreds )
参数描述
deferredsDeferred类型 一个或多个延迟对象,或者普通的JavaScript对象

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mephisto180502

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值