(1)文档就绪函数
$(document).ready(function(){
--- jQuery functions go here ----
});
为了防止文档在完全加载(就绪)之前运行 jQuery 代码。
如果在文档没有完全加载之前就运行函数,操作可能失败。下面是具体的例子:
试图隐藏一个不存在的元素
获得未完全加载的图像的大小
(2)隐藏/显示元素
$(selector).hide(speed,callback);
$(selector).show(speed,callback);
可选的 speed 参数规定隐藏/显示的速度,值:"slow"、"fast" 或毫秒。
可选的 callback 参数是隐藏或显示完成后所执行的函数名称。
(3)显示被隐藏的元素,并隐藏已显示的元素:
$(selector).toggle(speed,callback);
用来切换 hide() 和 show() 方法。
$("button").click(function(){
$("p").toggle();
});
(4)淡入淡出
$(selector).fadeIn(speed,callback);
$("button").click(function(){
$("#div1").fadeIn();
$("#div2").fadeIn("slow");
$("#div3").fadeIn(3000);
});
$(selector).fadeOut(speed,callback);
$("button").click(function(){
$("#div1").fadeOut();
$("#div2").fadeOut("slow");
$("#div3").fadeOut(3000);
});
$(selector).fadeToggle(speed,callback);
$("button").click(function(){
$("#div1").fadeToggle();
$("#div2").fadeToggle("slow");
$("#div3").fadeToggle(3000);
});
$(selector).fadeTo(speed,opacity,callback);
opacity 参数将淡入淡出效果设置为给定的不透明度(值介于 0 与 1 之间)。
$("button").click(function(){
$("#div1").fadeTo("slow",0.15);
$("#div2").fadeTo("slow",0.4);
$("#div3").fadeTo("slow",0.7);
});
(5)滑动[使元素上下滑动]
示例
<div class="panel">
<p>W3School - 领先的 Web 技术教程站点</p>
</div>
<p class="flip">请点击这里</p>
被隐藏的元素向下滑动[显示div]
$(selector).slideDown(speed,callback);
$("#flip").click(function(){
$("#panel").slideDown();
});
被隐藏的元素向上滑动[隐藏div]
$(selector).slideUp(speed,callback);
$("#flip").click(function(){
$("#panel").slideUp();
});
上下滑动[显示/隐藏div]
$(selector).slideToggle(speed,callback);
$("#flip").click(function(){
$("#panel").slideToggle();
});
(6)动画
$(selector).animate({params},speed,callback);
必需的 params 参数定义形成动画的 CSS 属性。
可选的 speed 参数规定效果的时长。值:"slow"、"fast" 或毫秒。
可选的 callback 参数是动画完成后所执行的函数名称。
实例
首先把div元素的 CSS position 属性设置为 relative、fixed 或 absolute
再把div元素移动到左边,直到 left 属性等于 250 像素为止,同时可以设置其他属性。
$("button").click(function(){
$("div").animate({
left:'250px',
opacity:'0.5',
height:'150px',
width:'150px'
});
});
把 <div> 元素移动到右边,然后增加文本的字号
$("button").click(function(){
var div=$("div");
div.animate({left:'100px'},"slow");
div.animate({fontSize:'3em'},"slow");
});
停止动画效果
$(selector).stop(stopAll,goToEnd);
(7)callback参数
$(selector).hide(speed,callback);
$("p").hide(1000,function(){
alert("The paragraph is now hidden");
});
(8)Chaining
链接技术,允许我们在相同的元素上运行多条 jQuery 命令,一条接着另一条。
这样的话,浏览器就不必多次查找相同的元素。
如需链接一个动作,您只需简单地把该动作追加到之前的动作上。
"p1" 元素首先会变为红色,然后向上滑动,然后向下滑动:
$("#p1").css("color","red").slideUp(2000).slideDown(2000);
提示:当进行链接时,代码行会变得很差。
(9)获得元素内容和属性
获得内容 - text()、html() 以及 val()
<p id="test">this is <B>a</B> test.</p>
$("#btn1").click(function(){
alert("Text: " + $("#test").text());
});
输出:this is a test.
$("#btn2").click(function(){
alert("HTML: " + $("#test").html());
});
输出:this is <B>a</B> test.
<input type="text" id="test" value="123456">
$("#btn1").click(function(){
alert("Value: " + $("#test").val());
});
输出:123456
获取属性 - attr()
<a href="#" id="test">
$("button").click(function(){
alert($("#test").attr("href"));
});
输出:#
(9)设置元素内容和属性
$("#btn1").click(function(){
$("#test1").text("Hello world!");
});
$("#btn2").click(function(){
$("#test2").html("<b>Hello world!</b>");
});
$("#btn3").click(function(){
$("#test3").val("Dolly Duck");
});
$("button").click(function(){
$("#test4").attr({
"href" : "http://www.w3school.com.cn/jquery",
"title" : "W3School jQuery Tutorial"
});
});
可以看出,和获取函数唯一的区别就是以上函数里面有参数,而获取时是没有参数的。
(10)添加新的 HTML 内容/元素
append() - 在被选元素的结尾插入内容
prepend() - 在被选元素的开头插入内容
after() - 在被选元素之后插入内容
before() - 在被选元素之前插入内容
(11)删除 HTML 元素
移除元素:remove() - 删除被选元素及其子元素
清空元素子元素:empty() - 删除子元素,保留选中元素
过滤被删除的元素:
$("p").remove(".italic") -删除 class="italic" 的所有 <p> 元素
(12)操作CSS
addClass() - 向被选元素添加一个或多个类
removeClass() - 从被选元素删除一个或多个类
toggleClass() - 对被选元素进行添加/删除类的切换操作
css() - 设置或返回样式属性
样式表
.important
{
font-weight:bold;
font-size:xx-large;
}
.blue
{
color:blue;
}
例子
$("button").click(function(){
$("h1,h2,p").addClass("blue");
$("div").addClass("important blue");
});
$("button").click(function(){
$("h1,h2,p").removeClass("blue");
});
$("button").click(function(){
$("h1,h2,p").toggleClass("blue");
});
(13) css() 方法
css() 方法设置或返回被选元素的一个或多个样式属性。
设置
$("p").css("background-color","yellow");
$("p").css({"background-color":"yellow","font-size":"200%"});
返回
$("p").css("background-color");
$("p").css({"background-color","font-size"});
(14)尺寸
width() 方法设置或返回元素的宽度(不包括内边距、边框或外边距)。
height() 方法设置或返回元素的高度(不包括内边距、边框或外边距)。
innerWidth() 方法返回元素的宽度(包括内边距)。
innerHeight() 方法返回元素的高度(包括内边距)。
outerWidth() 方法返回元素的宽度(包括内边距和边框)。
outerHeight() 方法返回元素的高度(包括内边距和边框)。
outerWidth(true) 方法返回元素的宽度(包括内边距、边框和外边距)。
outerHeight(true) 方法返回元素的高度(包括内边距、边框和外边距)。
文档的尺寸
$(document).width();
$(document).height();
窗口[浏览器视窗]的尺寸
$(window).width();
$(window).height();
设置指定的 <div> 元素的宽度和高度:
$("button").click(function(){
$("#div1").width(500).height(500);
});
(15)AJAX
load():从服务器加载数据,并把返回的数据放入被选元素中。
$(selector).load(URL,data,callback);
必需的 URL 参数规定您希望加载的 URL。
可选的 data 参数规定与请求一同发送的查询字符串键/值对集合。
可选的 callback 参数是 load() 方法完成后所执行的函数名称。
$.get() 方法通过 HTTP GET 请求从服务器上请求数据。
$.get(URL,callback);
$("button").click(function(){
$.get("demo_test.asp",function(data,status){
alert("Data: " + data + "\nStatus: " + status);
});
});
$.post() 方法通过 HTTP POST 请求从服务器上请求数据。
$.post(URL,data,callback);
$("button").click(function(){
$.post("demo_test_post.asp",
{
name:"Donald Duck",
city:"Duckburg"
},
function(data,status){
alert("Data: " + data + "\nStatus: " + status);
});
});
jQuery AJAX 请求
$(selector).load(url,data,callback) 把远程数据加载到被选的元素中
$.ajax(options) 把远程数据加载到 XMLHttpRequest 对象中
$.get(url,data,callback,type) 使用 HTTP GET 来加载远程数据
$.post(url,data,callback,type) 使用 HTTP POST 来加载远程数据
$.getJSON(url,data,callback) 使用 HTTP GET 来加载远程 JSON 数据
$.getScript(url,callback) 加载并执行远程的 JavaScript 文件
(url) 被加载的数据的 URL(地址)
(data) 发送到服务器的数据的键/值对象
(callback) 当数据被加载时,所执行的函数
(type) 被返回的数据的类型 (html,xml,json,jasonp,script,text)
(options) 完整 AJAX 请求的所有键/值对选项
示例
$.ajax(options)
$(document).ready(function(){
$("#b01").click(function(){
htmlobj=$.ajax({url:"/jquery/test1.txt",async:false});
$("#myDiv").html(htmlobj.responseText);
});
});
(16)冲突
jQuery 使用 $ 符号作为 jQuery 的简写。如果其他 JavaScript 框架也使用 $ 符号作为简写怎么办?这时:
1)您可以通过全名替代简写的方式来使用jQuery
noConflict() 方法会释放会 $ 标识符的控制,这样其他脚本就可以使用它了。
$.noConflict();
jQuery(document).ready(function(){
jQuery("button").click(function(){
jQuery("p").text("jQuery 仍在运行!");
});
});
2)您可以创建自己的简写
var jq = $.noConflict();
jq(document).ready(function(){
jq("button").click(function(){
jq("p").text("jQuery 仍在运行!");
});
});
3)把 $ 符号作为变量传递给 ready 方法
如果你的jQuery代码块使用$简写,并且您不愿意改变这个快捷方式,那么您可以把$符号作为变量传递给ready方法。这样就可以在函数内使用$符号了。而在函数外,依旧不得不使用 "jQuery"
$.noConflict();
jQuery(document).ready(function($){
$("button").click(function(){
$("p").text("jQuery 仍在运行!");
});
});