1. JQuery 对HTML的设置与捕获
jQuery 中非常重要的部分,就是操作 DOM 的能力。
Query 提供一系列与 DOM 相关的方法,这使访问和操作元素和属性变得很容易。
1.1 html()
html() - 设置或返回所选元素的内容(包括 HTML 标记)
$("#btn2").click(function(){
alert("HTML: " + $("#test").html());
});
$("#btn2").click(function(){
$("#test2").html("<b>Hello world!</b>");
});
1.2 text()
text() - 设置或返回所选元素的文本内容
$("#btn1").click(function(){
alert("Text: " + $("#test").text());
});
$("#btn1").click(function(){
$("#test1").text("Hello world!");
});
1.3 vall()
val() - 设置或返回表单字段的值
$("#btn1").click(function(){
alert("值为: " + $("#test").val());
});
$("#btn3").click(function(){
$("#test3").val("RUNOOB");
});
1.4 text()、html() 以及 val() 的回调函数
回调函数有两个参数:被选元素列表中当前元素的下标,以及原始(旧的)值。然后以函数新值返回您希望使用的字符串。
$("#btn1").click(function(){
$("#test1").text(function(i,origText){
return "旧文本: " + origText + " 新文本: Hello world! (index: " + i + ")";
});
});
1.5 attr() 、 prop()
attr() 、prop()方法用于获取和返回属性值。
$("button").click(function(){ alert($("#runoob").attr("href")); });
$("button").click(function(){ $("#runoob").attr("href","http://www.runoob.com/jquery"); });
具有 true 和 false 两个属性的属性,如 checked, selected 或者 disabled 使用prop(),其他的使用 attr();.attr不仅可以返回(设置)元素的原生属性,还可以返回(设置)自定义属性
2. JQuery 对HTML的页面尺寸操作
2.1 width() 和 height() 方法
width() 方法设置或返回元素的宽度(不包括内边距、边框或外边距)。
height() 方法设置或返回元素的高度(不包括内边距、边框或外边距)。
$("button").click(function(){
"div 的宽度是: " + $("#div1").width() + "</br>";
"div 的高度是: " + $("#div1").height(20);
});
2.2 innerWidth() 和 innerHeight() 方法
innerWidth() 方法返回元素的宽度(包括内边距)。
innerHeight() 方法返回元素的高度(包括内边距)。
$("button").click(function(){
"div 宽度,包含内边距: " + $("#div1").innerWidth();
"div 高度,包含内边距: " + $("#div1").innerHeight();
});
2.3 outerWidth() 和 outerHeight() 方法
outerWidth() 方法返回元素的宽度(包括内边距和边框)。
outerHeight() 方法返回元素的高度(包括内边距和边框)。
$("button").click(function(){
txt+="div 宽度,包含内边距和边框: " + $("#div1").outerWidth()
txt+="div 高度,包含内边距和边框: " + $("#div1").outerHeight();
});
2.4 scrollTop() 和 scrollLeft() 方法
scrollTop() 方法设置或者返回滚动条被卷去的元素的高度
scrollLeft() 方法设置或者返回滚动条被卷去的元素的宽度
$("button").click(function(){ alert($("div").scrollTop()); });
3. jQuery添加元素和删除元素
3.1 append()方法
append() 方法在被选元素的结尾插入内容(仍然在该元素的内部)
$("ol").append("<li>追加列表项</li>");
3.2 prepend() 方法
prepend() 方法在被选元素的开头插入内容。
$("ol").prepend("<li>追加列表项</li>");
3.3 after() 和 before() 方法
jQuery after() 方法在被选元素之后插入内容。
jQuery before() 方法在被选元素之前插入内容
$("img").before("<b>之前</b>");
$("img").after("<i>之后</i>");
3.4 删除元素/内容
remove() - 删除被选元素(及其子元素)
empty() - 从被选元素中删除子元素
empty()仅仅删除元素的文本,占有位置,不显示在页面,但是DOM节点并没有删除
remove()把整个dom节点删除掉,,不占有位置
4. jquery插件的认识
jquery不可能包含所有的功能,我们可以通过插件扩展jquery的功能。
jquery有着丰富的插件,使用这些插件能给jquery提供一些额外的功能。
5. jquery 语法
5.1 基础语法
1、美元符号定义 jQuery
2、选择符(selector)"查询"和"查找" HTML 元素
3、jQuery 的 action() 执行对元素的操作。
6. JQuery选择器
基本选择器
名称 |
用法 |
描述 |
ID选择器 |
$(“#id”); |
获取指定ID的元素 |
类选择器 |
$(“.class”); |
获取同一类class的元素 |
标签选择器 |
$(“div”); |
获取同一类标签的所有元素 |
并集选择器 |
$(“div,p,li”); |
使用逗号分隔,只要符合条件之一就可。获取所有的div、p、li元素 |
交集选择器(标签指定式选择器) |
$(“div.redClass”); |
注意选择器1和选择器2之间没有空格,class为redClass的div元素,注意区分后代选择器。 |
层级选择器
名称 |
用法 |
描述 |
子代选择器 |
$(“ul>li”); |
使用>号,获取儿子层级的元素,注意,并不会获取孙子层级的元素 |
后代选择器 |
$(“ul li”); |
使用空格,代表后代选择器,获取ul下的所有li元素,包括孙子等 |
过滤选择器
用法 |
描述 | |
:eq(index) |
$(“li:eq(2)”).css(“color”, ”red”); |
获取到的li元素中,选择索引号为2的元素,索引号index从0开始。 |
:odd |
$(“li:odd”).css(“color”, ”red”); |
获取到的li元素中,选择索引号为奇数的元素 |
:even |
$(“li:even”).css(“color”, ”red”); |
获取到的li元素中,选择索引号为偶数的元素 |
筛选选择器
用法 |
说明 | |
children(selector) |
$(“ul”).children(“li”) |
相当于$(“ul>li”),子类选择器 |
find(selector) |
$(“ul”).find(“li”); |
相当于$(“ul li”),后代选择器 |
siblings(selector) |
$(“#first”).siblings(“li”); |
查找兄弟节点,不包括自己本身。 |
parent() |
$(“#first”).parent(); |
查找父亲 |
eq(index) |
$(“li”).eq(2); |
相当于$(“li:eq(2)”),index从0开始 |
next() |
$(“li”).next() |
找下一个兄弟 |
prev() |
$(“li”).prev() |
找上一次兄弟 |
Index() |
$(“li”).index() |
获取当前的位置(索引) |
not() |
$("p").not(".intro") |
返回不带有类名 "intro" 的所有 <p> 元素 |
7. jQuery事件
7.1 什么是事件
1、页面对不同访问者的响应叫做事件。
2、实例:在元素上移动鼠标、选取单选按钮、点击元素
7.2 语法
7.2.1 单击事件
$("p").click(function(){
// 动作触发后执行的代码!!
});
7.2.2 双击事件
$("p").dblclick(function(){
$(this).hide();
})
7.2.3 鼠标进入
$("#p1").mouseenter(function(){
alert('您的鼠标移到了 id="p1" 的元素上!');
});
7.2.4 鼠标离开
$("#p1").mouseleave(function(){
alert("再见,您的鼠标离开了该段落。");
});
7.2.5 获取焦点
$("input").focus(function(){
$(this).css("background-color","#cccccc");
});
7.2.6 失去焦点
$("input").blur(function(){
$(this).css("background-color","#ffffff");
});
8. jQuery css() 方法
8.1 jQuery css() 方法是什么
css() 方法设置或返回被选元素的一个或多个样式属性。
8.2 返回 CSS 属性
css("propertyname");
$("p").css("background-color");
8.3 设置CSS属性
css("propertyname","value");
$("p").css("background-color","yellow");
8.4 设置多个CSS属性
$("p").css({"background-color":"yellow","font-size":"200%"});
9. jQuery css类
9.1 addClass() 向被选元素添加一个或多个类
.important { font-weight:bold; font-size:xx-large; }
.blue { color:blue; }
$("button").click(function(){
$("h1,p").addClass("blue");
$("div").addClass("important");
});
9.2 removeClass() 从被选元素删除一个或多个类
$("button").click(function(){ $("h1,h2,p").removeClass("blue"); });
9.3 toggleClass() 对被选元素进行添加/删除类的切换操作
$("button").click(function(){ $("h1,h2,p").toggleClass("blue"); });
9.4 eq()
方法返回带有被选元素的指定索引号的元素,索引号从 0 开头,所以第一个元素的索引号是 0(不是 1)
$(selector).eq(index)
9.5 index() index() 方法返回指定元素相对于其他同级元素的 index 位置。
$("li").click(function(){
alert($(this).index());
});
9.6 not() Not() 方法返回指定元素之外的元素
$("input").not(".in1")
10. jQuery动画
10.1 jQuery隐藏显示 可以使用 hide() 和 show() 方法来隐藏和显示 HTML 元素
$("#hide").click(function(){
$("p").hide();
});
$("#show").click(function(){
$("p").show();
});
可以使用 toggle() 方法来切换 hide() 和 show() 方法。
$("button").click(function(){ $("p").toggle(); });
10.2 jQuery淡入淡出
fadeIn() 用于淡入已隐藏的元素, fadeOut() 方法用于淡出可见元素。
$("button").click(function(){
$("#div1").fadeIn();
$("#div2").fadeIn("slow");
$("#div3").fadeOut(3000);
});
fadeToggle() 方法可以在 fadeIn() 与 fadeOut() 方法之间进行切换。
$("button").click(function(){ ("#div2").fadeToggle("fast");});
fadeTo() 方法允许渐变为给定的不透明度(值介于 0 与 1 之间)。
$("button").click(function(){ $("#div1").fadeTo("slow",0.15);});
10.3 jQuery滑动
slideDown() 方法用于向下滑动元素, slideUp() 方法用于向上滑动元素。
$("#flip").click(function(){ $("#div1").slideDown(); $("#div1").slideUp();});
slideToggle() 方法可以在 slideDown() 与 slideUp() 方法之间进行切换。
$("#flip").click(function(){ $("#panel").slideToggle(); });
10.4 jQuery自定义动画
animate() 方法用于创建自定义动画。可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。可选的 callback 参数是动画完成后所执行的函数名称。
$("button").click(function(){
$("div").animate({
left:'250px', opacity:'0.5', height:'150px', width:'150px'
}); });
10.5 stop方法
jQuery stop() 方法用于停止动画或效果,在它们完成之前,适用于所有 jQuery 效果函数,包括滑动、淡入淡出和自定义动画。
$("#stop").click(function(){ $("#panel").stop(); });
10.6 回调函数
$("button").click(function(){
$("p").hide("slow",function(){
alert("段落现在被隐藏了");
}); });
11. jQuery 事件机制
11.1 注册事件
bind() 、on() 方法向被选元素添加一个或多个事件处理程序,以及当事件发生时运行的函数。
$("p").bind("click",function(){
alert("这个段落被点击了。");
});
$("p").bind("dbClick",function(){
alert("这个段落被双击了。");
});
$("p").on("click",function(){ alert("段落被点击了。"); });
11.2 委托事件
delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数
$("div").delegate("p","click",function(){
$("p").css("background-color","pink");
});
11.3 事件对象event
event对象有以下属性
type:事件类型,比如click。
which:触发该事件的鼠标按钮或键盘的键。
target:事件发生的初始对象。
data:传入事件对象的数据。
pageX:事件发生时,鼠标位置的水平坐标(相对于页面左上角)。
pageY:事件发生时,鼠标位置的垂直坐标(相对于页面左上角
$("button").click(function(event){
console.log(evet);
});
11.4 each()方法
each() 方法为每个匹配元素规定要运行的函数。
$("button").click(function(){
$("li").each(function(){
alert($(this).text())
});
});