基础语法: $(selector).action()
jQuery 的 action() 执行对元素的操作
- $(this).hide() - 隐藏当前元素
- $("p.test").hide() - 隐藏所有 class="test" 的 元素
Query 中所有选择器都以美元符号开头:$()。
元素选择器
元素
元素
元素的第一个
元素
元素的第一个
元素
元素 和
元素 元素
- $(“tr:odd”)
- 选取奇数位置的
元素
JQuery事件
- jQuery 是为事件处理特别设计的。
- 页面对不同访问者的响应叫做事件。
- 事件处理程序指的是当 HTML 中发生某些事件时所调用的方法。
- $(document).ready() 方法
- 允许我们在文档完全加载完后执行函数
鼠标事件
click() 方法是当按钮点击事件被触发时会调用一个函数
$("p").click(function(){
$(this).hide();
});
dblclick() 方法当双击元素时触发 事件,或规定当发生 dblclick 事件时运行的函数
$("p").dblclick(function(){
$(this).hide();
});
mouseenter() 当鼠标指针穿过元素时触发
$("#p1").mouseenter(function(){
alert('您的鼠标移到了 id="p1" 的元素上!');
});
mouseleave() 当鼠标指针离开元素时,会发生 mouseleave 事件。
$("#p1").mouseleave(function(){
alert("再见,您的鼠标离开了该段落。");
});
mousedown()当鼠标指针移动到元素上方,并按下鼠标按键时,会发生 mousedown 事件。
$("#p1").mouseup(function(){
alert("鼠标在段落上松开。");
});
hover()方法用于模拟光标悬停事件。
- 当鼠标移动到元素上时,会触发指定的第一个函数(mouseenter);
当鼠标移出这个元素时,会触发指定的第二个函数(mouseleave)。
$("#p1").hover(
function(){
alert("你进入了 p1!");
},
function(){
alert("拜拜! 现在你离开了 p1!");
}
);
- focus()
- 当元素获得焦点时,发生 focus 事件。
当通过鼠标点击选中元素或通过 tab 键定位到元素时,该元素就会获得焦点。focus() 方法触发 focus 事件。
$("input").focus(function(){
$(this).css("background-color","#cccccc");
});
- blur() 当元素失去焦点时,发生 blur 事件。
JQuery效果
隐藏与显示:
隐藏和显示 HTML 元素:
$("#hide").click(function(){
$("p").hide();
});
$("#show").click(function(){
$("p").show();
});
语法:
- $(selector).hide(speed,callback);
$(selector).show(speed,callback);
- 可选的 speed 参数规定隐藏/显示的速度,可以取以下值:”slow”、”fast” 或毫秒。
可选的 callback 参数是隐藏或显示完成后所执行的函数名称。
$("button").click(function(){
$("p").hide(1000);
});
- toggle() 方法来切换 hide() 和 show() 方法。
- 语法:
- $(selector).toggle(speed,callback);
- 说明:就是显示和隐藏两种功能进行切换
淡入淡出:
- fadeIn() 用于淡入已隐藏的元素。
语法:
$(selector).fadeIn(speed,callback);
- 可选的 speed 参数规定效果的时长。它可以取以下值:”slow”、”fast” 或毫秒。.
可选的 callback 参数是 fading 完成后所执行的函数名称。
$("button").click(function(){
$("#div1").fadeIn();//直接显示
$("#div2").fadeIn("slow");//直接显示
$("#div3").fadeIn(3000);//3s后显示
});
- fadeOut() 方法用于淡出可见元素。
- 语法:
- $(selector).fadeOut(speed,callback); //参数和列子同淡入
- fadeToggle() 方法可以在 fadeIn() 与 fadeOut() 方法之间进行切换。
- 如果元素已淡出,则 fadeToggle() 会向元素添加淡入效果。
- 如果元素已淡入,则 fadeToggle() 会向元素添加淡出效果。
- 语法:
- $(selector).fadeToggle(speed,callback);//就是两种状态相互切换举例和参数解释同淡入、、、这里不做解释
- fadeTo() 方法允许渐变为给定的不透明度(值介于 0 与 1 之间)。
语法:
$(selector).fadeTo(speed,opacity,callback);
- 必需的 speed 参数规定效果的时长。它可以取以下值:”slow”、”fast” 或毫秒。
- fadeTo() 方法中必需的 opacity 参数将淡入淡出效果设置为给定的不透明度(值介于 0 与 1 之间)。
可选的 callback 参数是该函数完成后所执行的函数名称。
$("button").click(function(){
$("#div1").fadeTo("slow",0.15);
$("#div2").fadeTo("slow",0.4);
$("#div3").fadeTo("slow",0.7);
});//就是把颜色变淡
滑动
- slideDown() 方法用于向下滑动元素。
语法:
$(selector).slideDown(speed,callback);
- 可选的 speed 参数规定效果的时长。它可以取以下值:”slow”、”fast” 或毫秒。
可选的 callback 参数是滑动完成后所执行的函数名称。
$("#flip").click(function(){
$("#panel").slideDown();
});
- slideUp() 方法用于向上滑动元素。
- 语法:
- $(selector).slideUp(speed,callback);//参数和举例参照向下滑动实例
- slideToggle() 方法可以在 slideDown() 与 slideUp() 方法之间进行切换。
- 如果元素向下滑动,则 slideToggle() 可向上滑动它们。
- 如果元素向上滑动,则 slideToggle() 可向下滑动它们。
- 语法:
- $(selector).slideToggle(speed,callback);//向上、向下滑动进行切换
动画:
- animate() 方法用于创建自定义动画。
语法:
$(selector).animate({params},speed,callback);
- 必需的 params 参数定义形成动画的 CSS 属性。
- 可选的 speed 参数规定效果的时长。它可以取以下值:”slow”、”fast” 或毫秒。
可选的 callback 参数是动画完成后所执行的函数名称。
$("button").click(function(){
$("div").animate({left:'250px'});
});
animate() - 操作多个属性
可以用 animate() 方法来操作所有 CSS 属性吗?
是的,几乎可以!不过,需要记住一件重要的事情:当使用 animate() 时,必须使用 Camel 标记法书写所有的属性名,比如,必须使用 paddingLeft 而不是 padding-left,使用 marginRight 而不是 margin-right,等等。
$("button").click(function(){
$("div").animate({
left:'250px',
opacity:'0.5',
height:'150px',
width:'150px'
});
});
animate() - 使用相对值也可以定义相对值(该值相对于元素的当前值)。需要在值的前面加上 += 或 -=:
$("button").click(function(){
$("div").animate({
left:'250px',
height:'+=150px',//点击效果会一致增加
width:'+=150px'
});
});
- animate() - 使用预定义的值
- 您甚至可以把属性的动画值设置为 “show”、”hide” 或 “toggle”:
$("button").click(function(){
$("div").animate({
height:'toggle'
});
});
animate() - 使用队列功能
Query 提供针对动画的队列功能。这意味着如果您在彼此之后编写多个 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");
});
停止动画:
- stop() 方法用于停止动画或效果,在它们完成之前。
- stop() 方法适用于所有 jQuery 效果函数,包括滑动、淡入淡出和自定义动画。
- 语法:;
- $(selector).stop(stopAll,goToEnd);
- 可选的 stopAll 参数规定是否应该清除动画队列。默认是 false,即仅停止活动的动画,允许任何排入队列的动画向后执行。
- 可选的 goToEnd 参数规定是否立即完成当前动画。默认是 false。
Callback方法:
Callback 函数在当前动画 100% 完成之后执行。
- 许多 jQuery 函数涉及动画。这些函数也许会将 speed 或 duration 作为可选参数。
- 例子:$(“p”).hide(“slow”)
speed 或 duration 参数可以设置许多不同的值,比如 “slow”, “fast”, “normal” 或毫秒。
$("button").click(function(){
$("p").hide("slow",function(){
alert("段落现在被隐藏了");
});
});
链(Chaining):
- 通过 jQuery,可以把动作/方法链接在一起。
- Chaining 允许我们在一条语句中运行多个 jQuery 方法(在相同的元素上)。
- 语法:
- $(“#p1”).css(“color”,”red”).slideUp(2000).slideDown(2000);//颜色先变红、再向上滑动、最后向下滑动
JQuery HTTML
获取内容和属性:
- DOM = Document Object Model(文档对象模型)
- text() - 设置或返回所选元素的文本内容
- html() - 设置或返回所选元素的内容(包括 HTML 标记)
val() - 设置或返回表单字段的值
$("#btn1").click(function(){
alert("Text: " + $("#test").text());
});
$("#btn2").click(function(){
alert("HTML: " + $("#test").html());
});
$("#btn1").click(function(){
alert("值为: " + $("#test").val());
});
attr() 方法用于获取属性值。
$("button").click(function(){
alert($("#runoob").attr("href"));
});
设置内容和属性:
- text()、html() 以及 val() 的回调函数
回调函数有两个参数:被选元素列表中当前元素的下标,以及原始(旧的)值。然后以函数新值返回您希望使用的字符串。
$("#btn1").click(function(){
$("#test1").text(function(i,origText){
return "旧文本: " + origText + " 新文本: Hello world! (index: " + i + ")";
});
});
attr() 方法也用于设置/改变属性值。
$("button").click(function(){
$("#runoob").attr({
"href" : "http://www.runoob.com/jquery",
"title" : "jQuery 教程"
});
});
attr() 的回调函数
方法 attr(),也提供回调函数。回调函数有两个参数:被选元素列表中当前元素的下标,以及原始(旧的)值。然后以函数新值返回您希望使用的字符串。
$("button").click(function(){
$("#runoob").attr("href", function(i,origValue){
return origValue + "/jquery";
});
});
添加元素:
- append() - 在被选元素的结尾插入内容
- prepend() - 在被选元素的开头插入内容
- after() - 在被选元素之后插入内容
before() - 在被选元素之前插入内容
ppend() 和 prepend() 方法能够通过参数接收无限数量的新元素。可以通过 jQuery 来生成文本/HTML(就像上面的例子那样),或者通过 JavaScript 代码和 DOM 元素。
function appendText()
{
var txt1="文本。
";// 使用 HTML 标签创建文本
var txt2=$("").text("文本。"); // 使用 jQuery 创建文本
var txt3=document.createElement("p");
txt3.innerHTML="文本。"; // 使用 DOM 创建文本 text with DOM
$("body").append(txt1,txt2,txt3); // 追加新元素
}
删除元素:
- remove() - 删除被选元素(及其子元素)
- empty() - 从被选元素中删除子元素
remove() 方法也可接受一个参数,允许您对被删元素进行过滤。该参数可以是任何 jQuery 选择器的语法。下面的例子删除 class=”italic” 的所有
元素:
$("p").remove(".italic");
$("#div1").empty();
获取并设置CSS类:
- addClass() - 向被选元素添加一个或多个类
- removeClass() - 从被选元素删除一个或多个类
- toggleClass() - 对被选元素进行添加/删除类的切换操作
css() - 设置或返回样式属性
$("button").click(function(){
$("h1,h2,p").addClass("blue");
$("div").addClass("important");
});
CSS()方法:
- css() 方法设置或返回被选元素的一个或多个样式属性。
- 如需返回指定的 CSS 属性的值,请使用如下语法:
- css(“propertyname”);//获取其值
- 如需设置指定的 CSS 属性,请使用如下语法:
- css(“propertyname”,”value”);//设置值
- 如需设置多个 CSS 属性,请使用如下语法:
- css({“propertyname”:”value”,”propertyname”:”value”,…});
尺寸:
- width() 方法设置或返回元素的宽度(不包括内边距、边框或外边距)。
- height() 方法设置或返回元素的高度(不包括内边距、边框或外边距)。
- innerWidth() 方法返回元素的宽度(包括内边距)。
- innerHeight() 方法返回元素的高度(包括内边距)。
- outerWidth() 方法返回元素的宽度(包括内边距和边框)。
- outerHeight() 方法返回元素的高度(包括内边距和边框)。

JQuery遍历
- 下图展示了一个家族树。通过 jQuery 遍历,您能够从被选(当前的)元素开始,轻松地在家族树中向上移动(祖先),向下移动(子孙),水平移动(同胞)。这种移动被称为对 DOM 进行遍历。

元素是
的父元素,同时是其中所有内容的祖先。
元素是
元素的父元素,同时是 的子元素
- 左边的
元素是
的父元素,
的子元素,同时是 的后代。
元素是
的子元素,同时是
和 的后代。
- 两个
元素是同胞(拥有相同的父元素)。
- 右边的
元素是 > 的父元素,
的子元素,同时是 的后代。
元素是右边的
的子元素,同时是
和 的后代。
祖先:(向上遍历 DOM 树 )
parent() 方法返回被选元素的直接父元素。
$(document).ready(function(){
$("span").parent();
});
parents() 方法返回被选元素的所有祖先元素,它一路向上直到文档的根元素 (
)。
$(document).ready(function(){
$("span").parents("ul");
});//所有 ` `元素的所有祖先,并且它是` `元素
parentsUntil() 方法返回介于两个给定元素之间的所有祖先元素。
$(document).ready(function(){
$("span").parentsUntil("div");
});//返回介于 ` `与 ` `元素之间的所有祖先元素
后代:(向下遍历 DOM 树)
children() 方法返回被选元素的所有直接子元素。
该方法只会向下一级对 DOM 树进行遍历。
$(document).ready(function(){
$("div").children("p.1");
}); //返回类名为 "1" 的所有 元素,并且它们是
的直接子元素
find() 方法返回被选元素的后代元素,一路向下直到最后一个后代。
$(document).ready(function(){
$("div").find("span");
});//返回属于 后代的所有 元素;如果是星号就表示所有子元素
同胞(siblings):
siblings() 方法返回被选元素的所有同胞元素
$(document).ready(function(){
$("h2").siblings();
});//返回 的所有同胞元素
- next() 方法返回被选元素的下一个同胞元素。
- nextAll() 方法返回被选元素的所有跟随的同胞元素。
nextUntil() 方法返回介于两个给定参数之间的所有跟随的同胞元素。
$(document).ready(function(){
$("h2").nextUntil("h6");
});//返回介于 与 元素之间的所有同胞元素
- prev(), prevAll() 以及 prevUntil() 方法的工作方式与上面的方法类似,只不过方向相反而已:它们返回的是前面的同胞元素(在 DOM 树中沿着同胞元素向后遍历,而不是向前)。
过滤:
first() 方法返回被选元素的首个元素。
$(document).ready(function(){
$("div p").first();
});//选取首个 元素内部的第一个 元素
- last() 方法返回被选元素的最后一个元素
eq() 方法返回被选元素中带有指定索引号的元素。
索引号从 0 开始,因此首个元素的索引号是 0 而不是 1。
$(document).ready(function(){
$("p").eq(1);
});//选取第二个 元素(索引号 1)
filter() 方法允许您规定一个标准。不匹配这个标准的元素会被从集合中删除,匹配的元素会被返回
$(document).ready(function(){
$("p").filter(".url");
});//返回带有类名 "url" 的所有 元素
- not() 方法返回不匹配标准的所有元素。
- 提示:not() 方法与 filter() 相反。
AJAX
- AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML)。
- load() 方法从服务器加载数据,并把返回的数据放入被选元素中
- 语法:
- $(selector).load(URL,data,callback);
- 必需的 URL 参数规定您希望加载的 URL。
- 可选的 data 参数规定与请求一同发送的查询字符串键/值对集合。
- 可选的 callback 参数是 load() 方法完成后所执行的函数名称。
可选的 callback 参数规定当 load() 方法完成后所要允许的回调函数。回调函数可以设置不同的参数:
- responseTxt - 包含调用成功时的结果内容
- statusTXT - 包含调用的状态
xhr - 包含 XMLHttpRequest 对象
$("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);
});
});
- get() 和 post() 方法用于通过 HTTP GET 或 POST 请求从服务器请求数据
- $.get() 方法通过 HTTP GET 请求从服务器上请求数据。
- 语法:
- $.get(URL,callback);
- 必需的 URL 参数规定您希望请求的 URL。
- 可选的 callback 参数是请求成功后所执行的函数名。
- $.post() 方法通过 HTTP POST 请求从服务器上请求数据。
语法:
$.post(URL,data,callback);
- 必需的 URL 参数规定您希望请求的 URL。
- 可选的 data 参数规定连同请求发送的数据。
可选的 callback 参数是请求成功后所执行的函数名。
$("button").click(function(){
$.post("/try/ajax/demo_test_post.php",
{
name:"菜鸟教程",
url:"http://www.runoob.com"
},
function(data,status){
alert("数据: \n" + data + "\n状态: " + status);
});
});
JQuery其他
noConflict() 方法会释放会 $ 标识符的控制,这样其他脚本就可以使用它了。
意义:
1.其他一些 JavaScript 框架包括:MooTools、Backbone、Sammy、Cappuccino、Knockout、JavaScript MVC、Google Web Toolkit、Google Closure、Ember、Batman 以及 Ext JS。
2.其中某些框架也使用 $ 符号作为简写(就像 jQuery),如果您在用的两种不同的框架正在使用相同的简写符号,有可能导致脚本停止运行。
$.noConflict();
jQuery(document).ready(function(){
jQuery("button").click(function(){
jQuery("p").text("jQuery 仍然在工作!");
});
});//当然,您仍然可以通过全名替代简写的方式来使用 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)